3GPP TS 33.117
1. Scope
▶The present document contains objectives and requirements for security assurance of network products, together with the associated test cases required for the security evaluation and catalogues the general security assurance requirements that are common across all network product classes.
This catalogue complements the product-class-specific catalogues of security requirements and test cases.
2. References
▶The following documents contain provisions which, through reference in this text, constitute provisions of the present document.
| Ref | Document | Title | Link |
|---|---|---|---|
| [1] | 3GPP TR 21.905 | Vocabulary for 3GPP Specifications | 3GPP Portal |
| [2] | 3GPP TS 33.210 | Network Domain Security (NDS); IP network layer security | 3GPP Portal |
| [3] | IETF RFC 3871 | Operational Security Requirements for Large Internet Service Provider (ISP) IP Network Infrastructure | RFC 3871 |
| [4] | 3GPP TR 33.926 | Security Assurance Specification (SCAS) threats and critical assets in 3GPP network product classes | 3GPP Portal |
| [5] | 3GPP TS 33.310 | Network Domain Security (NDS); Authentication Framework (AF) | 3GPP Portal |
| [6] | IETF RFC 7540 | Hypertext Transfer Protocol Version 2 (HTTP/2) | RFC 7540 |
| [7] | IETF RFC 6749 | The OAuth 2.0 Authorization Framework | RFC 6749 |
| [8] | IETF RFC 7515 | JSON Web Signature (JWS) | RFC 7515 |
| [9] | IETF RFC 7519 | JSON Web Token (JWT) | RFC 7519 |
| [10] | 3GPP TS 33.501 | Security architecture and procedures for 5G System | 3GPP Portal |
| [11] | IETF RFC 7126 | Recommendations on Filtering of IPv4 Packets Containing IPv4 Options | RFC 7126 |
| [12] | 3GPP TS 29.500 | 5G System; Technical Realization of Service Based Architecture | 3GPP Portal |
| [13] | 3GPP TS 29.501 | 5G System; Principles and Guidelines for Services Definition | 3GPP Portal |
| [14] | 3GPP TR 33.916 | Security Assurance Methodology (SECAM) for 3GPP network products; Overview; Processes | 3GPP Portal |
| [18] | 3GPP TS 23.501 | System architecture for the 5G System (5GS) | 3GPP Portal |
3. Definitions & Abbreviations
▶3.1 Definitions
▶- Network Product: An implementation of one or more 3GPP network functions and/or protocols, consisting of hardware and/or software, including relevant O&M functions.
- Network Product Class: A logical grouping of related network products that share similar security characteristics.
- Security Assurance Specification (SCAS): A document specifying the security requirements and test cases for a network product class.
- Critical Assets: Resources that require protection. These assets include information and processes necessary to deliver the required service.
- Test Name: A unique identifier for a test case used as an anchor for test execution and documentation.
- Accredited Evaluator: A lab or entity that has been accredited to perform SCAS evaluations on network products.
3.2 Abbreviations
▶| BVT | Basic Vulnerability Testing |
| CGI | Common Gateway Interface |
| COTS | Commercial Off-The-Shelf |
| FOSS | Free and Open Source Software |
| GTP | GPRS Tunnelling Protocol |
| GTP-C | GTP Control Plane |
| GTP-U | GTP User Plane |
| ICMP | Internet Control Message Protocol |
| IE | Information Element |
| JSON | JavaScript Object Notation |
| JWT | JSON Web Token |
| JWS | JSON Web Signature |
| NDS | Network Domain Security |
| NF | Network Function |
| NRF | Network Repository Function |
| O&M | Operation and Maintenance |
| PLMN | Public Land Mobile Network |
| RBAC | Role Based Access Control |
| RPF | Reverse Path Filter |
| SBA | Service Based Architecture |
| SBI | Service Based Interface |
| SCAS | Security Assurance Specification |
| SECAM | Security Assurance Methodology |
| SSI | Server Side Includes |
| TLS | Transport Layer Security |
| WAS | Web Application Security |
| 5GC | 5G Core |
| 5GS | 5G System |
4. Catalogue of Security Requirements and Test Cases
▶4.1 Introduction
▶This clause catalogues the security requirements and related test cases that are common across all network product classes. For product-class-specific requirements, see the companion specifications (e.g., TS 33.512 for gNB, TS 33.513 for UPF/GW, etc.).
4.1.1 Pre-requisites for Testing
▶- The network product is available in a configuration that is representative of a real deployment
- The tester has remote and/or local access to the network product as described in vendor documentation
- The test environment is isolated from any production networks
- All required documentation has been provided by the vendor
4.1.2 Use of Tools
▶Where test cases refer to the use of tools, the individual tools are selected by the evaluator. The SECAM accreditation body will ensure during accreditation of the evaluator's laboratory that the testers are able to utilize adequate tools.
4.1.3 Documentation
▶The vendor shall provide documentation describing the network product, its interfaces, configuration options, and security features. This documentation forms a prerequisite for many test cases in this catalogue.
4.2 Security Functional Requirements
▶Security functional requirements address authentication, authorization, confidentiality, integrity, availability, and related security properties of the network product.
4.2.2 Security Requirements Derived from 3GPP Specifications
▶This clause contains security requirements and test cases derived from 3GPP service-based architecture specifications, including TS 33.501, TS 29.500, and TS 29.501.
Name: Protection at the transport layer
Description: Network products using SBI shall support TLS-based protection as specified in TS 33.501 clause 13.1, including mutual authentication using certificates as per TS 33.310. The NF shall support HTTP/2 (RFC 7540) over TLS.
TR 33.926 §5.3.6 Information disclosure ▶
- The NF is configured for TLS-based protection on the SBI
- Valid certificates are installed on the NF as per TS 33.310
- A tester machine with TLS analysis capabilities is available
- A network traffic analyser (e.g. TCPDUMP, Wireshark) is available
- Verify that the NF supports TLS on its SBI interfaces
- Verify mutual authentication using certificates per TS 33.310
- Check that the NF supports HTTP/2 over TLS as per RFC 7540
- Check the supported TLS versions and cipher suites match TS 33.210/TS 33.310 requirements
- Attempt to connect without TLS and verify the connection is rejected
- Attempt to connect with an invalid/expired certificate and verify rejection
The NF enforces TLS protection on all SBI interfaces with mutual authentication. Connections without TLS or with invalid certificates are rejected.
Pcap traces, TLS handshake logs, certificate details, test tool output, Pass/Fail result.
Name: Authorization token verification failure handling within same PLMN
Reference: TS 33.501 clause 13.4.1, RFC 6749 (OAuth 2.0), RFC 7515 (JWS), RFC 7519 (JWT)
Description: The NF service producer shall verify the access token in each service request within the same PLMN and reject the request if the token verification fails.
TR 33.926 §5.3.8.1 Misuse by authorized users ▶
- NRF issues access tokens for NF service consumers within the same PLMN
- NF service producer is configured to verify access tokens
- Test environment with NF producer, NF consumer, and NRF (may be simulated)
- No token: Send a service request without an access token → verify rejection
- Expired token: Send request with an expired access token → verify rejection
- Invalid signature: Send request with a token signed by wrong key → verify rejection
- Wrong audience: Send request with an access token having incorrect audience claim → verify rejection
- Wrong scope: Send request with an access token for a different service/resource → verify rejection
- Malformed token: Send request with a syntactically malformed access token → verify rejection
- Wrong issuer: Send request with an access token from a non-trusted NRF → verify rejection
- Valid token: Send request with a valid, correctly scoped access token → verify acceptance
Sub-tests 1–7: The NF service producer rejects the service request with an appropriate error response.
Sub-test 8: The NF service producer accepts and processes the request normally.
HTTP request/response logs, token payloads (decoded JWTs), pcap traces, Pass/Fail per sub-test.
RFC 7519 — JWT: Claims include "iss" (issuer), "sub" (subject), "aud" (audience), "exp" (expiration). Must be validated per Section 7.2.
RFC 7515 — JWS: Signature verification using the algorithm specified in the JOSE Header. The key must come from a trusted source (NRF).
Name: Authorization token verification failure handling across different PLMNs
Description: When receiving service requests from NFs in a different PLMN, the NF service producer shall verify the PLMN ID in the access token and reject requests with mismatched or invalid PLMN identifiers.
- Wrong PLMN ID: Send request with an access token containing a PLMN ID that does not match the consumer's PLMN → verify rejection
- Valid cross-PLMN: Send request with a valid access token containing correct PLMN ID → verify acceptance
Sub-test 1: Rejection with appropriate error. Sub-test 2: Normal processing.
Name: Client credentials assertion validation
Reference: TS 33.501 clause 13.3.1, RFC 7523
Description: The NRF shall validate the client credentials assertion (CCA) presented by an NF service consumer when requesting an access token. The CCA is a JWT signed by the NF.
- Invalid CCA signature: Request access token with a CCA signed by wrong key → NRF rejects
- Expired CCA: Request access token with an expired CCA → NRF rejects
- Valid CCA: Request access token with valid, correctly-signed CCA → NRF issues token
Sub-tests 1–2: NRF rejects the token request. Sub-test 3: NRF issues an access token.
HTTP request/response logs, CCA JWT payloads, NRF logs, Pass/Fail per sub-test.
4.2.3 Technical Baseline Security Requirements
▶This clause contains security requirements based on industry best practices covering data protection, authentication, authorization, session management, and security logging.
Name: Protecting data and information — confidential system-internal data
Description: Confidential system-internal data (e.g. passwords, secret keys, private keys) shall be stored in a secure manner and shall not be accessible in clear text to unauthorized users or processes.
TR 33.926 §5.3.6 Information disclosure
- The tester identifies all confidential data items as declared in the vendor documentation
- The tester verifies that confidential data is stored in encrypted or otherwise protected form
- The tester verifies that unauthorized users/processes cannot access confidential data in clear text
- The tester checks configuration files, log files, and debug outputs for unprotected confidential data
No confidential system-internal data is accessible in clear text to unauthorized users or processes.
Name: Password storage support
Description: Passwords shall be stored using a one-way hashing mechanism with a salt. The hashing algorithm shall be a current, non-deprecated algorithm (e.g., bcrypt, scrypt, Argon2, PBKDF2).
- The tester verifies in the vendor documentation which password hashing algorithm and parameters are used
- The tester verifies that passwords are stored as salted hashes (not reversible encryption or plain text)
- The tester verifies the hashing algorithm is not deprecated (not MD5, not SHA-1 for password storage)
All passwords are stored using approved one-way salted hashing. No passwords in plain text or reversible form.
Name: Protecting data and information in transfer
Description: Sensitive data transferred between the network product and external entities shall be protected in transit using approved cryptographic mechanisms (e.g. TLS, IPsec as per TS 33.210).
All sensitive data in transit is protected by approved cryptographic mechanisms.
Name: Password structure
Description: The system shall support enforcement of password complexity rules including: minimum length (≥8 characters), support for upper/lower case, digits, and special characters. Default/initial passwords shall be changed on first login.
- Attempt to set passwords that violate length requirements → verify rejection
- Attempt to set passwords without required complexity → verify rejection or warning
- Verify that default/initial passwords must be changed on first login
- Verify password complexity configuration options match vendor documentation
Password complexity rules are enforced. Weak passwords are rejected. First-login password change is required.
Name: Password changes
Description: Users shall be able to change their own passwords. The system shall support password expiry/aging policies. Password history shall prevent reuse of recent passwords.
- Verify a user can change their own password
- Verify password aging/expiry is configurable and enforced
- Attempt to reuse a recent password → verify rejection
Password change works. Password aging is enforced. Password history prevents reuse.
Name: Protection against brute force and dictionary attacks
Description: The system shall implement mechanisms to mitigate brute force and dictionary attacks against authentication mechanisms, such as account lockout or increasing delay after consecutive failed attempts.
- Configure the brute force protection mechanism per vendor documentation
- Attempt multiple consecutive failed login attempts
- Verify that the protection mechanism activates (lockout, delay, CAPTCHA, etc.)
- Verify the mechanism is configurable (threshold, lockout duration, etc.)
After reaching the threshold, further login attempts are blocked or delayed. The mechanism is configurable.
Description: The system shall mask password input on all interfaces (CLI, GUI, web). Passwords shall not be displayed in clear text in any user interface, log file, or configuration display.
- Enter a password via CLI → verify characters are masked (asterisks or not echoed)
- Enter a password via web/GUI → verify password field is masked
- Check logs and configuration displays for password exposure
Passwords are never displayed in clear text on any interface, log, or configuration output.
Name: Mutual authentication
Description: System functions shall not be used without successful authentication and authorization. The system shall support mutual authentication where both the user/entity and the system verify each other's identity.
- Attempt to access system functions without authentication → verify denial
- Verify that mutual authentication is supported and can be configured
- Authenticate successfully and verify access is granted
Name: Consecutive failed login attempts policy
Description: The network product shall implement a policy for handling consecutive failed login attempts. After a configurable number of failed attempts, the account shall be locked for a configurable period or require administrative intervention to unlock.
- Configure the failed login attempt threshold (e.g., 5 attempts)
- Attempt to login with incorrect credentials exceeding the threshold
- Verify the account is locked after threshold is exceeded
- Verify the account is unlocked after the configured lockout period or by admin action
Name: Protecting sessions — logout
Description: The system shall provide a logout function that terminates the session and invalidates all associated session tokens/credentials. After logout, the user must re-authenticate to access system functions.
- Login to the system and verify session is established
- Execute the logout function
- Attempt to reuse the previous session token/credential → verify denial
- Verify that re-authentication is required for further access
Name: Protecting sessions — inactivity timeout
Description: The system shall terminate sessions after a configurable period of inactivity. The user must re-authenticate after session timeout.
- Configure the inactivity timeout period
- Login and remain inactive for longer than the configured timeout
- Attempt to use the session → verify it has been terminated
- Verify re-authentication is required
Name: Security event logging
Description: The network product shall log security-relevant events. Each log entry shall include at minimum: event type, timestamp, outcome (success/failure), identity of the entity involved, and the source of the event.
| Event Category | Examples |
|---|---|
| Authentication | Successful/failed login, logout |
| Authorization | Access granted/denied, privilege changes |
| Account Management | Account creation, deletion, modification, lockout |
| Configuration Changes | Security-relevant configuration modifications |
| System Events | Startup, shutdown, restart, time changes |
| Data Access | Access to sensitive data, export of data |
| Network Events | Firewall events, packet filtering events |
- Trigger each category of security event listed above
- Verify each event is recorded in the security log
- Verify log entries contain required fields (timestamp, event type, outcome, identity, source)
- Verify logs cannot be modified or deleted by non-administrative users
Name: Log transfer to centralized storage
Description: The network product shall support the transfer of security logs to a centralized log storage (e.g., syslog server, SIEM). The transfer shall be done in a secure manner (encrypted and/or integrity protected).
- Configure the network product to send logs to a centralized storage
- Generate security events and verify they appear in the centralized storage
- Verify the log transfer is protected (TLS, IPsec, etc.)
- Verify log integrity is maintained during transfer
4.2.4 Operating Systems
▶Name: Growing content shall not influence system functions
Description: Growing content (such as log files, temporary files, or databases) shall not fill up the file system to the point where the system becomes inoperative. The OS shall have mechanisms (partitioning, quotas, log rotation) to prevent this.
- Review the vendor documentation for mechanisms to handle growing content
- Verify that log files and temp directories are on separate partitions or have quotas
- Simulate excessive log generation and verify the system remains functional
- Verify that log rotation or equivalent cleanup mechanisms are in place
The system remains operational even when growing content reaches its limits. Mechanisms exist to prevent storage exhaustion.
Name: Processing of ICMPv4 and ICMPv6 packets
Description: The system shall be configurable to control which ICMP message types are processed. Unnecessary ICMP types should be disabled by default to reduce the attack surface.
| Type | Name | Default |
|---|---|---|
| 0 | Echo Reply | Allow |
| 3 | Destination Unreachable | Allow |
| 8 | Echo Request | Configurable |
| 11 | Time Exceeded | Allow |
| 5 | Redirect | Drop |
| 13/14 | Timestamp/Reply | Drop |
| 17/18 | Address Mask Request/Reply | Drop |
| Type | Name | Default |
|---|---|---|
| 1 | Destination Unreachable | Allow |
| 2 | Packet Too Big | Allow |
| 3 | Time Exceeded | Allow |
| 128/129 | Echo Request/Reply | Configurable |
| 133-136 | NDP (RS/RA/NS/NA) | Allow |
| 137 | Redirect | Drop |
- Review vendor documentation for ICMP handling configuration
- Send each ICMP type to the network product and verify handling matches the documented policy
- Verify that ICMP types marked "Drop" are silently dropped
- Verify that ICMP redirect messages are not processed by default
Name: Handling of IP options and IPv6 extension headers
Reference: RFC 7126 — Recommendations on Filtering of IPv4 Packets Containing IPv4 Options
Description: The network product shall handle IPv4 options and IPv6 extension headers according to RFC 7126 recommendations. IP packets with potentially dangerous options (e.g., Source Route, Record Route) shall be dropped by default.
- Send packets with IPv4 Loose Source Route option → verify they are dropped
- Send packets with IPv4 Strict Source Route option → verify dropped
- Send packets with IPv4 Record Route option → verify dropped
- Send packets with IPv4 Timestamp option → verify dropped
- Send packets with normal headers → verify accepted
- For IPv6: send packets with Routing Header Type 0 → verify dropped
Name: Privilege escalation prevention (UNIX-specific)
Description: The system shall minimize privilege escalation risks. SUID/SGID binaries shall be limited to those essential for operation. Linux capabilities shall be minimized.
- List all SUID binaries:
find / -perm -4000 -type f - List all SGID binaries:
find / -perm -2000 -type f - List all binaries with capabilities:
getcap -r / - Verify each found binary against the vendor's documented list of required SUID/SGID/capabilities
- Any undocumented SUID/SGID binary or capability shall be flagged
Name: Unique system account identification
Description: Each system account shall have a unique user ID. No two accounts shall share the same UID. Service accounts shall not have interactive login capability unless explicitly required.
- Check
/etc/passwdfor duplicate UIDs - Verify service accounts have
/sbin/nologinor/bin/falseas shell - Verify vendor documentation covers all system accounts and their purposes
4.2.5 Web Servers
▶Name: Web server logging
Description: Web server access logs and error logs shall be enabled and shall capture sufficient information for security monitoring and incident investigation.
- Verify that access logging is enabled on the web server
- Verify that error logging is enabled
- Generate requests (valid and invalid) and verify they appear in logs
- Verify logs include: timestamp, source IP, request method, URI, response code, user agent
- Verify logs do not contain sensitive data (passwords, tokens, etc.)
- Session IDs shall be cryptographically random and of sufficient length
- Session IDs shall not be transmitted in URLs
- Session cookies shall have the Secure flag set
- Session cookies shall have the HttpOnly flag set
- Session IDs shall be regenerated after authentication
- Session timeout shall be enforced (both idle and absolute)
- Logout shall invalidate the session on the server side
- The server shall support only one active session per user (configurable)
- Session fixation attacks shall be prevented
- Cross-site request forgery (CSRF) protection shall be implemented
- Session data shall be stored server-side, not in cookies
- The SameSite cookie attribute shall be set appropriately
Name: Input validation
Description: All user input accepted by the web application shall be validated. Input validation shall protect against injection attacks including SQL injection, command injection, XSS, LDAP injection, and path traversal.
- Test all input fields with common injection payloads (SQL, XSS, command injection)
- Test for path traversal attempts (e.g.,
../../etc/passwd) - Verify that error messages do not reveal internal implementation details
- Use a web application security testing tool for comprehensive injection testing
4.2.6 Network Devices
▶Security requirements specific to network devices including packet filtering, interface robustness, and GTP protocol filtering.
Name: Packet filtering
Reference: RFC 3871 — Operational Security Requirements for Large ISP IP Network Infrastructure
Description: The network product shall support configurable packet filtering (stateful firewall / ACL) on each network interface. The filtering shall support rules based on source/destination IP, protocol, source/destination port, and direction (ingress/egress). A default deny policy shall be configurable.
TR 33.926 §5.3.7.3 Insecure Network Services
- The network product has at least two network interfaces
- The tester has administrative access
- A network traffic generator and analyser (e.g., hping3, scapy, tcpdump) is available
- Vendor documentation describes the packet filtering capabilities
- Configure a default-deny policy on all interfaces
- Add specific allow rules for required traffic
- Send packets matching allowed rules → verify they are forwarded/accepted
- Send packets not matching any allow rule → verify they are dropped
- Verify filtering works for both ingress and egress directions
- Verify rules can be configured per-interface
- Verify filtering criteria: source IP, destination IP, protocol, source port, destination port
Packet filtering is functional, configurable per-interface, supports default deny, and correctly allows/drops packets based on configured rules.
Firewall/ACL configuration, pcap captures, traffic generator commands, Pass/Fail result.
Name: Interface robustness
Description: The network product shall be robust against malformed, oversized, fragmented, or otherwise unexpected packets received on any interface. Such packets shall not cause crashes, resource exhaustion, or security breaches.
- Send malformed packets (truncated headers, invalid fields) to each interface
- Send oversized packets exceeding MTU
- Send heavily fragmented packets
- Send packets with invalid checksums
- Monitor the network product for crashes, memory leaks, or degraded performance
The network product remains stable and functional. Malformed packets are silently dropped or logged without causing system instability.
Name: GTP-C filtering
Reference: In accordance with industry best practice and TS 33.501
Description: For network products that receive GTP-C (GTP Control Plane) traffic, the network product shall be capable of filtering GTP-C messages. The filtering shall support inspection of GTP-C header fields and permit/deny decisions based on GTP-C message type, TEID, and other relevant fields.
TR 33.926 §5.3.7.3 Insecure Network Services ▶
TR 33.926 §5.3.6.15 Lack of GNP traffic isolation ▶
- The network product receives GTP-C traffic (e.g., it implements S11, S5/S8, N11 GTP-C interfaces)
- The network product is configured to filter GTP-C messages per vendor documentation
- A GTP-C traffic generator/simulator is available (e.g., capable of generating GTPv2-C messages)
- A network traffic analyser (e.g., tcpdump, Wireshark with GTP dissector) is available
- The tester has administrative access to the network product
- Vendor documentation describes the GTP-C filtering capabilities, supported message types, and configuration
- Verify documentation: Confirm vendor documentation describes GTP-C filtering capabilities and configuration
- Configure filtering: Configure GTP-C filtering rules on the network product per vendor documentation
- Valid GTP-C messages: Send valid GTP-C messages matching allowed message types → verify they are accepted and processed
- Blocked message types: Send GTP-C messages with message types that are not allowed → verify they are dropped/rejected
- Invalid TEID: Send GTP-C messages with invalid or unknown TEIDs → verify appropriate handling (drop or error response)
- Malformed GTP-C: Send malformed GTP-C messages (truncated, invalid header fields, wrong version) → verify they are dropped without crashing
- GTP-C on wrong port: Send GTP-C messages on non-standard ports → verify they are dropped
- Spoofed source: Send GTP-C messages from non-authorized source IP addresses → verify they are dropped
- Rate limiting: If GTP-C rate limiting is supported, verify that excessive GTP-C message rates are throttled
- Logging: Verify that filtered/dropped GTP-C messages are logged with sufficient detail for forensic analysis
- Only valid, authorized GTP-C messages are processed
- Unauthorized, malformed, or unexpected GTP-C messages are dropped
- The network product remains stable when receiving malformed GTP-C traffic
- Filtering events are properly logged
GTP-C filter configuration, pcap traces showing accepted and dropped GTP-C messages, log files showing filter events, traffic generator configuration/commands, Pass/Fail per step.
Name: GTP-U filtering
Reference: In accordance with industry best practice and TS 33.501
Description: For network products that receive GTP-U (GTP User Plane) traffic, the network product shall be capable of filtering GTP-U packets. The filtering shall support inspection of GTP-U header fields and permit/deny decisions based on TEID, source/destination addresses in the inner packet, and other relevant criteria.
TR 33.926 §5.3.7.3 Insecure Network Services ▶
TR 33.926 §5.3.6.15 Lack of GNP traffic isolation ▶
- The network product receives GTP-U traffic (e.g., it implements S1-U, S5/S8-U, N3, N9 GTP-U interfaces)
- The network product is configured to filter GTP-U traffic per vendor documentation
- A GTP-U traffic generator is available (e.g., capable of encapsulating user-plane data in GTP-U)
- A network traffic analyser with GTP-U dissector capability is available
- The tester has administrative access
- Vendor documentation describes GTP-U filtering capabilities and configuration
- Verify documentation: Confirm vendor documentation describes GTP-U filtering capabilities and configuration
- Configure filtering: Configure GTP-U filtering rules on the network product per vendor documentation
- Valid GTP-U traffic: Send valid GTP-U encapsulated traffic with authorized TEIDs → verify accepted and forwarded
- Invalid TEID: Send GTP-U packets with invalid or unassigned TEIDs → verify they are dropped
- Inner packet filtering: Send GTP-U packets with inner IP packets that violate filtering rules (e.g., unauthorized destination) → verify dropped
- Malformed GTP-U: Send malformed GTP-U packets (truncated, invalid version, wrong header flags) → verify dropped without crashing
- GTP-U on wrong port: Send GTP-U traffic on non-standard ports → verify dropped
- Spoofed outer source: Send GTP-U from unauthorized source IPs → verify dropped
- GTP-in-GTP: Send GTP-U packets encapsulated within GTP-U (nested tunneling) → verify handling per policy (typically drop)
- Logging: Verify that filtered/dropped GTP-U packets are logged with sufficient detail
- Only valid, authorized GTP-U traffic is forwarded
- Unauthorized, malformed, or unexpected GTP-U packets are dropped
- Inner packet inspection works correctly for GTP-U decapsulated traffic
- The network product remains stable under malformed GTP-U traffic
- Filtering events are properly logged
GTP-U filter configuration, pcap traces showing accepted and dropped GTP-U packets, log files, traffic generator configuration, Pass/Fail per step.
- N3: Between gNB (RAN) and UPF — carries user-plane data
- N9: Between UPFs — inter-UPF forwarding
- N4: Between SMF and UPF — PFCP-based (not GTP)
- S1-U: 4G equivalent of N3 (eNB to S-GW)
- S5/S8-U: 4G between S-GW and P-GW
4.3 Hardening Requirements
▶Hardening requirements aim to minimize the attack surface of the network product by removing unnecessary services, software, and functions, and by restricting access.
4.3.2 Technical Baseline Hardening
▶Name: No unnecessary or insecure services
Description: No unnecessary or insecure services or protocols shall be active on any network interface. Services that should be disabled by default include: Telnet, FTP, TFTP, SNMP v1/v2c, rlogin, rsh, BOOTP server, discovery protocols (CDP, LLDP), Identd.
TR 33.926 §5.3.7.3 Insecure Network Services ▶
- Vendor provides a list of all required network protocols, services, open ports, and their purposes
- A port scanning / service identification tool is available
- Verify the vendor documentation lists all required services and justifies each
- Use tools to identify all running services and protocol handlers on the network product
- Validate that no undocumented services are running
- Reboot the network product and re-execute steps 2-3 to verify persistence
No unnecessary services running. No undocumented services. Behavior is consistent after reboot.
Description: Services shall be restricted to interfaces where their usage is required. Administrative services (SSH, HTTPS, RDP) shall be restricted to management interfaces to support traffic separation.
- For each interface: run port scan to identify reachable services
- Verify services are only reachable on designated interfaces per vendor documentation
- Administrative services must not be reachable from user/data plane interfaces
Description: Unused software components shall not be installed or shall be deleted. This includes examples, default web pages, test data, and sample databases.
- Verify vendor provides complete software inventory (name, version, dependencies, purpose)
- Identify installed software using package managers (
apt,rpm,pip,npm, etc.) - Validate no software exists beyond what's documented as necessary
- Check for default configuration or example files
Description: Unused hardware and software functions shall be permanently deactivated. This includes unused interfaces (e.g., Bluetooth), debugging functionality, and unnecessary kernel modules. "Permanently" means not reactivated after reboot.
- Verify vendor documentation lists all hardware and software functions
- Identify active hardware/software functions using tools (
lspci,lsusb,lsmod, etc.) - Validate no undocumented functions are active
Description: No software or hardware components that have reached end-of-life or end-of-support shall be present, unless covered by a special support contract guaranteeing vulnerability correction.
- Identify all software/hardware components and their versions
- Verify each component's support status (not EOL/EOS)
- Flag any unsupported components
Description: Direct login as root or equivalent highest-privileged user shall be limited to the physical console only. Remote root login shall be disabled.
- Attempt remote login as root via SSH/other remote interfaces → verify rejection
- Attempt login as root from the physical console → verify success
Remote root login is denied. Console root login is permitted. Pass/Fail.
Description: File system permissions shall enforce that users can only modify files/directories they are authorized for. Sticky bit shall be set on world-writable directories.
- Verify OS-level permissions match vendor documentation
- Login as non-admin user and attempt to modify authorized files → verify success
- Attempt to modify unauthorized files → verify permission denied
4.3.3 Operating System Hardening
▶Name: IP-Source address spoofing mitigation
Description: Systems shall not process IP packets if their source address is not reachable via the incoming interface. Implementation example: Reverse Path Filter (RPF) — e.g., net.ipv4.conf.all.rp_filter = 1
TR 33.926 §5.3.3.5 IP Spoofing ▶
- Node N1: Two interfaces — if1-n1 connected to network product, if2-n1 (192.168.3.1/24) with tester machine
- Node N2: Two interfaces — if1-n2 connected to network product, if2-n2 (same IP as if2-n1: 192.168.3.1/24)
- Network Product: if1-np (192.168.1.x) → N1, if2-np (192.168.2.x) → N2
- Static route on network product: 192.168.3.0/24 reachable via if1-n1 through if1-np
- From tester via N1: send pings to if1-np → verify pings reach and responses are sent
- Disconnect tester from N1, reconnect to N2 (same IP config)
- Send pings to if1-np → verify pings reach but are dropped (source not routable via incoming interface)
- Send pings to if2-np → verify also dropped
- If logging available, verify dropped packets are recorded
RPF or equivalent anti-spoofing is active. Packets with source addresses not routable via the incoming interface are silently dropped.
| Test Name | Verifies |
|---|---|
| TC_PROXY_ARP_DISABLING | Proxy ARP is disabled — NP does not respond to ARP requests for other hosts |
| TC_DIRECTED_BROAD_DISABLING | Directed broadcast is disabled — packets to broadcast addresses are dropped |
| TC_IP_MULTICAST_HANDLING | IPv4 multicast (224.0.0.0–239.255.255.255) is disabled by default |
| TC_GRATUITOUS_ARP_DISABLING | Gratuitous ARP is disabled — unsolicited ARP does not update cache |
| TC_BROADCAST_ICMP_HANDLING | ICMP ECHO and TIMESTAMP to broadcast addresses not answered |
TR 33.926 §5.3.6.11 Unnecessary Services — Prevents Smurf, Fraggle, ARP cache poisoning, and man-in-the-middle attacks ▶
Description: The network product shall not automatically launch any application when removable media (CD, DVD, USB) is connected. Auto-mount shall be disabled.
- Prepare removable media with autostart files
- Insert into each accessible port
- Verify no auto-mount and no auto-launch
Description: The network product shall support SYN flood prevention (e.g., TCP SYN cookies: net.ipv4.tcp_syncookies = 1). This shall be enabled by default.
- Verify SYN flood prevention mechanism in vendor documentation
- Use tool (e.g.,
hping3 -i <interval> -S -p <port> -d <size> -c <count> <IP>) to generate SYN flood - Verify network product remains functional during and after the attack
- Verify services remain accessible and responsive
- Verify CPU/memory usage stays within acceptable thresholds
The network product does not become inoperative under SYN flood attack.
Description: The system shall support buffer overflow protection mechanisms (e.g., ASLR, DEP/NX bit, stack canaries, PIE). Documentation describing these mechanisms and how to verify them shall be provided.
- Verify technical documentation describes buffer overflow protection mechanisms
- Verify whether protections are enabled by default or require manual activation
- Review test results demonstrating the protection mechanisms are functional
Description: OS-level restrictions (nodev, nosuid) shall be set for user-mountable filesystems to prevent privilege escalation. In Linux: set nodev and nosuid in /etc/fstab for filesystems with the "user" option.
- Verify OS-level mount restrictions in
/etc/fstab - Mount a prepared external filesystem with SUID files
- Attempt privilege escalation using mounted content → verify blocked
4.3.4 Web Server Hardening
▶| Test Name | Clause | Requirement |
|---|---|---|
| TC_NO_SYSTEM_PRIVILEGES_WEB_SERVER | 4.3.4.2 | No web server processes run with system/root privileges |
| TC_NO_UNUSED_HTTP_METHODS | 4.3.4.3 | Unused HTTP methods (TRACE, TRACK, PUT, DELETE) deactivated |
| TC_NO_UNUSED_ADD-ONS | 4.3.4.4 | Unneeded add-ons, CGI, SSI, WebDAV deactivated |
| TC_NO_COMPILER_FOR_CGI | 4.3.4.5 | No compilers/interpreters/shells in CGI directories |
| TC_NO_CGI_OR_SCRIPTING_FOR_UPLOADS | 4.3.4.6 | Upload directory ≠ CGI/scripting directory |
| TC_NO_EXECUTION_OF_SYSTEM_COMMANDS | 4.3.4.7 | SSI exec directive cannot execute system commands |
| TC_ACCESS_RIGHTS_WEB_SERVER_FILES | 4.3.4.8 | Config file access restricted to web server owner/admin |
| TC_NO_DEFAULT_CONTENT | 4.3.4.9 | Default content (examples, docs, aliases) removed |
| TC_NO_DIRECTORY_LISTINGS | 4.3.4.10 | Directory browsing/indexing deactivated |
| TC_NO_WEB_SERVER_HEADER_INFORMATION | 4.3.4.11 | HTTP headers do not expose server version/modules |
| TC_NO_WEB_SERVER_ERROR_PAGES_INFORMATION | 4.3.4.12 | Error pages do not expose server details |
| TC_NO_WEB_SERVER_FILE_TYPE_MAPPINGS | 4.3.4.13 | Unnecessary file type mappings (php, sh, exe) deleted |
| TC_RESTRICTED_FILE_ACCESS | 4.3.4.14 | Restrictive access rights on all served files; path traversal prevented |
4.3.5 Network Devices Hardening
▶Name: Traffic separation
Reference: RFC 3871
Description: The network product shall support physical or logical separation of traffic belonging to different network domains (e.g., O&M vs. control plane vs. user plane).
- Verify the network product has separate interfaces for different domains
- Send traffic intended for one domain on another domain's interface → verify it is rejected
- Repeat for all pairs of network domains
Traffic is not passed between domains. Each domain's traffic stays on its designated interfaces. Pass/Fail.
4.3.6 Network Functions in Service-Based Architecture
▶Name: No code execution or inclusion of external resources by JSON parsers
Description: JSON parsers used by NFs shall not execute JavaScript or any other code contained in received JSON objects. Parsers shall not include external resources (filesystem files, URIs) referenced in JSON payloads.
TR 33.926 §6.3.2.1 JSON Parser Exploits ▶
- Use a Web Application Security tool to send HTTP requests with JSON payloads containing JavaScript code
- Send JSON payloads with references to local filesystem paths
- Send JSON payloads with references to external URIs
- Using tcpdump/traffic analyser, verify no external resources are loaded during parsing
- Verify no code is executed from JSON payload content
Reference: TS 29.501 clause 6.2
Description: Duplicate key names in JSON objects shall result in an error and message rejection.
- Send HTTP requests with duplicate keys in JSON payload → verify error response
- Send valid requests → verify normal processing
Reference: TS 29.501 clause 6.2
Description: The NF shall enforce limits on JSON message structure:
- Maximum leaf IEs per message: 2,048K
- Maximum JSON body size: 16 million octets
- Maximum nesting depth: 32 levels
- Send HTTP requests with JSON bodies exceeding each limit → verify error response
- Send valid requests within limits → verify normal processing
4.4 Basic Vulnerability Testing Requirements
▶This clause covers basic vulnerability testing (BVT) which uses automated tools to identify known vulnerabilities. BVT is complementary to — not a replacement for — the specification-based testing in earlier clauses.
4.4.1 Introduction
▶Basic vulnerability testing includes three main activities:
- Port Scanning — Identifying open ports and associated services
- Vulnerability Scanning — Identifying known vulnerabilities with up-to-date databases
- Robustness & Fuzz Testing — Sending malformed inputs to protocol interfaces
Name: Port Scanning
Description: All TCP and UDP ports (1-65535) on all interfaces shall be scanned. Results shall identify open ports and map them to running services. All identified services shall be justified.
- Port scanner (e.g., Nmap) available
- Scanner can reach all network interfaces of the target
- Vendor has provided list of expected open ports and services
- Execute full TCP SYN scan on all interfaces:
nmap -sS -p 1-65535 <target> - Execute full UDP scan on all interfaces:
nmap -sU -p 1-65535 <target> - Execute service/version detection on open ports:
nmap -sV -p <open-ports> <target> - Compare identified services against vendor's documented service list
- Report any undocumented open ports or services
All open ports are documented and justified. No unexpected open ports or services. Pass/Fail.
Name: Vulnerability Scanning
Description: The network product shall be scanned for known vulnerabilities:
- Network-based vulnerability scanning tools (e.g., OpenVAS/Greenbone, Nessus)
- If web UI is present: OWASP-compliant web application scanner (e.g., OWASP ZAP, Burp Suite)
- If API endpoints exist: API-specific scanning
- Vulnerability scanner with database updated ≤7 calendar days before test
- CVE database version documented in test report
- Scanner authenticated (if applicable) for deeper analysis
- Configure scanner with target interfaces and credentials
- Execute network vulnerability scan against all interfaces
- If web interface exists: execute web application vulnerability scan
- Review findings and categorize by CVSS score (Critical/High/Medium/Low/Info)
- Validate findings — eliminate false positives
- Report all confirmed vulnerabilities with CVE references
No known critical or high-severity vulnerabilities. Medium-severity findings require justification from vendor. Pass/Fail.
Name: Robustness and Fuzz Testing
Description: All protocol interfaces exposed by the network product shall be tested for robustness using fuzzing tools. This includes:
- Transport layer protocols (TCP, UDP, SCTP, GTP)
- Application layer protocols (HTTP/2, SIP, Diameter, PFCP, NGAP, etc.)
- 3GPP-specific protocols on all interfaces
TR 33.926 §5.3.6.5 Improper Error Handling ▶
- Identify all protocol interfaces from vendor documentation
- Configure fuzzer for each protocol interface
- Execute fuzz testing with minimum 10,000 test cases per protocol
- Monitor for: crashes, hangs, memory leaks, assertion failures, unexpected restarts
- Verify network product recovers gracefully from malformed inputs
- Document all anomalies found during testing
- Malformed GTP headers (invalid version, message type, TEID, sequence numbers)
- Invalid IE types, lengths, and values
- Oversized GTP messages exceeding maximum lengths
- Truncated messages
- Invalid extension header chains
- Path management message floods
No crashes, hangs, or security-relevant anomalies. Network product handles all malformed inputs gracefully. Pass/Fail.
Annex A (Informative): Change History
▶| Change# | Version | Date | CR Subject |
|---|---|---|---|
| — | 15.0.0 | 2018-09 | Initial Release 15 — catalogue of general security assurance requirements |
| — | 15.1.0 | 2019-03 | Rapporteur clean-up (editorial corrections) |
| — | 15.2.0 | 2019-06 | Added SBI/SBA NF test cases for 5G SA |
| — | 15.3.0 | 2019-09 | GTP-C / GTP-U filtering test cases |
| — | 16.0.0 | 2020-07 | Release 16 baseline |
| — | 16.1.0 | 2020-09 | Additional JSON parser and SBA hardening requirements |
| — | 16.2.0 | 2021-03 | IE format / range validation requirements |
| — | 17.0.0 | 2022-03 | Release 17 baseline |
| — | 17.1.0 | 2022-06 | SCAS split alignment, additional web server TCs |
| — | 17.2.0 | 2022-09 | Client credentials assertion validation |
| — | 17.3.0 | 2023-03 | Updated TLS requirements alignment with TS 33.210/310 |
| — | 18.0.0 | 2023-09 | Release 18 baseline |
| — | 18.1.0 | 2023-12 | Updated authorization token test cases |
| — | 18.2.0 | 2024-01 | Updated ICMP handling and IP options test cases |
| — | 18.3.0 | 2024-03 | Editorial corrections and clarifications |