VNFRQTS - Fixing the metadata
[vnfrqts/requirements.git] / docs / Chapter4 / Security.rst
1 .. Modifications Copyright © 2017-2018 AT&T Intellectual Property.
2
3 .. Licensed under the Creative Commons License, Attribution 4.0 Intl.
4    (the "License"); you may not use this documentation except in compliance
5    with the License. You may obtain a copy of the License at
6
7 .. https://creativecommons.org/licenses/by/4.0/
8
9 .. Unless required by applicable law or agreed to in writing, software
10    distributed under the License is distributed on an "AS IS" BASIS,
11    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12    See the License for the specific language governing permissions and
13    limitations under the License.
14
15
16 VNF Security
17 ----------------------
18
19 The objective of this section is to provide the key security
20 requirements that need to be met by VNFs. The security requirements are
21 grouped into five areas as listed below. Other security areas will be
22 addressed in future updates. These security requirements are applicable
23 to all VNFs. Additional security requirements for specific types of VNFs
24 will be applicable and are outside the scope of these general
25 requirements.
26
27 Section 4.3 Security in *VNF Guidelines* outlines
28 the five broad security areas for VNFs that are detailed in the
29 following sections:
30
31 -  **VNF General Security**: This section addresses general security
32    requirements for the VNFs that the VNF provider will need to address.
33
34 -  **VNF Identity and Access Management**: This section addresses
35    security requirements with respect to Identity and Access Management
36    as these pertain to generic VNFs.
37
38 -  **VNF API Security**: This section addresses the generic security
39    requirements associated with APIs. These requirements are applicable
40    to those VNFs that use standard APIs for communication and data
41    exchange.
42
43 -  **VNF Security Analytics**: This section addresses the security
44    requirements associated with analytics for VNFs that deal with
45    monitoring, data collection and analysis.
46
47 -  **VNF Data Protection**: This section addresses the security
48    requirements associated with data protection.
49
50 VNF General Security Requirements
51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
52
53 This section provides details on the VNF general security requirements
54 on various security areas such as user access control, network security,
55 ACLs, infrastructure security, and vulnerability management. These
56 requirements cover topics associated with compliance, security patching,
57 logging/accounting, authentication, encryption, role-based access
58 control, least privilege access/authorization. The following security
59 requirements need to be met by the solution in a virtual environment:
60
61 General Security Requirements
62
63 Integration and operation within a robust security environment is necessary
64 and expected. The security architecture will include one or more of the
65 following: IDAM (Identity and Access Management) for all system and
66 applications access, Code scanning, network vulnerability scans, OS,
67 Database and application patching, malware detection and cleaning,
68 DDOS prevention, network security gateways (internal and external)
69 operating at various layers, host and application based tools for
70 security compliance validation, aggressive security patch application,
71 tightly controlled software distribution and change control processes
72 and other state of the art security solutions. The VNF is expected to
73 function reliably within such an environment and the developer is
74 expected to understand and accommodate such controls and can expected
75 to supply responsive interoperability support and testing throughout
76 the product's lifecycle.
77
78
79 .. req::
80     :id: R-23740
81     :target: VNF
82     :keyword: MUST
83     :updated: casablanca
84
85     The VNF **MUST** implement and enforce the principle of least privilege
86     on all protected interfaces.
87
88 .. req::
89     :id: R-61354
90     :target: VNF
91     :keyword: MUST
92     :updated: casablanca
93
94     The VNF **MUST** provide a mechanism (e.g., access control list) to
95     permit and/or restrict access to services on the VNF by source,
96     destination, protocol, and/or port.
97
98 .. req::
99     :id: R-92207
100     :target: VNF
101     :keyword: SHOULD
102     :updated: casablanca
103
104     The VNF **SHOULD** provide a mechanism that enables the operators to
105     perform automated system configuration auditing at configurable time
106     intervals.
107
108 .. req::
109     :id: R-46986
110     :target: VNF
111     :keyword: MUST
112     :updated: frankfurt
113
114     The VNF provider **MUST** follow GSMA vendor practices and SEI CERT Coding
115     Standards when developing the VNF in order to minimize the risk of
116     vulnerabilities. See GSMA NESAS Network Equipment Security Assurance Scheme –
117     Development and Lifecycle Security Requirements Version 1.0 (https://www.gsma.com/
118     security/wp-content/uploads/2019/11/FS.16-NESAS-Development-and-Lifecycle-Security-
119     Requirements-v1.0.pdf) and SEI CERT Coding Standards (https://wiki.sei.cmu.edu/
120     confluence/display/seccode/SEI+CERT+Coding+Standards).
121
122 .. req::
123     :id: R-99771
124     :target: VNF
125     :keyword: MUST
126     :updated: dublin
127
128     The VNF **MUST** have all code (e.g., QCOW2) and configuration files
129     (e.g., HEAT template, Ansible playbook, script) hardened, or with
130     documented recommended configurations for hardening and interfaces that
131     allow the Operator to harden the VNF. Actions taken to harden a system
132     include disabling all unnecessary services, and changing default values
133     such as default credentials and community strings.
134
135 .. req::
136     :id: R-19768
137     :target: VNF
138     :keyword: SHOULD
139     :updated: frankfurt
140
141     The VNF **SHOULD** support the separation of (1) signaling and payload traffic
142     (i.e., customer facing traffic), (2) operations, administration and management
143     traffic, and (3) internal VNF traffic (i.e., east-west traffic such as storage
144     access) using technologies such as VPN and VLAN.
145
146 .. req::
147     :id: R-56904
148     :target: VNF
149     :keyword: MUST
150     :updated: frankfurt
151
152     The VNF **MUST** interoperate with the ONAP (SDN) Controller so that
153     it can dynamically modify the firewall rules, ACL rules, QoS rules, virtual
154     routing and forwarding rules. This does not preclude the VNF providing other
155     interfaces for modifying rules.
156
157 .. req::
158     :id: R-69649
159     :target: VNF
160     :keyword: MUST
161     :updated: casablanca
162
163     The VNF Provider **MUST** have patches available for vulnerabilities
164     in the VNF as soon as possible. Patching shall be controlled via change
165     control process with vulnerabilities disclosed along with
166     mitigation recommendations.
167
168 .. req::
169     :id: R-62498
170     :target: VNF
171     :keyword: MUST
172     :updated: frankfurt
173
174     The VNF **MUST** support only encrypted access protocols, e.g., TLS,
175     SSH, SFTP.
176
177 .. req::
178    :id: R-872986
179    :target: VNF
180    :keyword: MUST
181    :introduced: casablanca
182
183    The VNF **MUST** store Authentication Credentials used to authenticate to
184    other systems encrypted except where there is a technical need to store
185    the password unencrypted in which case it must be protected using other
186    security techniques that include the use of file and directory permissions.
187    Ideally, credentials SHOULD rely on a HW Root of Trust, such as a
188    TPM or HSM.
189
190 .. req::
191     :id: R-80335
192     :target: VNF
193     :keyword: MUST
194     :updated: casablanca
195
196     For all GUI and command-line interfaces, the VNF **MUST** provide the
197     ability to present a warning notice that is set by the Operator. A warning
198     notice is a formal statement of resource intent presented to everyone
199     who accesses the system.
200
201 .. req::
202     :id: R-19082
203     :target: VNF
204     :keyword: MUST
205     :updated: frankfurt
206
207     The VNF **MUST** not contain undocumented functionality.
208
209 .. req::
210     :id: R-21819
211     :target: VNF
212     :keyword: MUST
213     :updated: el alto
214
215     VNFs that are subject to regulatory requirements **MUST** provide
216     functionality that enables the Operator to comply with ETSI TC LI
217     requirements, and, optionally, other relevant national equivalents.
218
219 .. req::
220     :id: R-86261
221     :target: VNF
222     :keyword: MUST
223     :updated: frankfurt
224
225     The VNF **MUST** be able to authenticate and authorize all remote access.
226
227 .. req::
228    :id: R-638682
229    :target: VNF
230    :keyword: MUST
231    :introduced: casablanca
232    :validation_mode: in_service
233
234    The VNF **MUST** log any security event required by the VNF Requirements to
235    Syslog using LOG_AUTHPRIV for any event that would contain sensitive
236    information and LOG_AUTH for all other relevant events.
237
238 .. req::
239    :id: R-756950
240    :target: VNF
241    :keyword: MUST
242    :introduced: casablanca
243
244    The VNF **MUST** be operable without the use of Network File System (NFS).
245
246 .. req::
247    :id: R-240760
248    :target: VNF
249    :keyword: MUST NOT
250    :introduced: casablanca
251
252    The VNF **MUST NOT** contain any backdoors.
253
254 .. req::
255    :id: R-256267
256    :target: VNF
257    :keyword: MUST
258    :introduced: casablanca
259
260    If SNMP is utilized, the VNF **MUST** support at least SNMPv3 with
261    message authentication.
262
263 .. req::
264    :id: R-258686
265    :target: VNF
266    :keyword: SHOULD NOT
267    :introduced: casablanca
268    :updated: el alto
269
270    The VNF application processes **SHOULD NOT** run as root. If a VNF
271    application process must run as root, the technical reason must
272    be documented.
273
274 .. req::
275    :id: R-118669
276    :target: VNF
277    :keyword: MUST
278    :introduced: casablanca
279
280    Login access (e.g., shell access) to the operating system layer, whether
281    interactive or as part of an automated process, **MUST** be through an
282    encrypted protocol such as SSH or TLS.
283
284 .. req::
285    :id: R-842258
286    :target: VNF
287    :keyword: MUST
288    :introduced: casablanca
289    :updated: frankfurt
290
291    The VNF **MUST** include a configuration (e.g. a heat template or CSAR package)
292    that specifies the targeted parameters (e.g. a limited set of ports)
293    over which the VNF will communicate; including internal, external and
294    management communication.
295
296 .. req::
297    :id: R-353637
298    :target: VNF
299    :keyword: SHOULD
300    :introduced: frankfurt
301
302    Containerized components of VNFs **SHOULD** follow the recommendations for
303    Container Base Images and Build File Configuration in the latest available version
304    of the CIS Docker Community Edition Benchmarks to ensure that containerized VNFs
305    are secure. All non-compliances with the benchmarks MUST be documented.
306
307 .. req::
308    :id: R-381623
309    :target: VNF
310    :keyword: SHOULD
311    :introduced: frankfurt
312
313    Containerized components of VNFs **SHOULD** execute in a Docker run-time environment
314    that follows the Container Runtime Configuration in the latest available version
315    of the CIS Docker Community Edition Benchmarks to ensure that containerized VNFs
316    are secure. All non-compliances with the benchmarks MUST be documented.
317
318 VNF Identity and Access Management Requirements
319 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
320
321 The following security requirements for logging, identity, and access
322 management need to be met by the solution in a virtual environment:
323
324
325 Identity and Access Management Requirements
326
327 .. req::
328     :id: R-99174
329     :target: VNF
330     :keyword: MUST
331     :updated: casablanca
332
333     The VNF **MUST**, if not integrated with the Operator's Identity and
334     Access Management system, support the creation of multiple IDs so that
335     individual accountability can be supported.
336
337 .. req::
338     :id: R-42874
339     :target: VNF
340     :keyword: MUST
341     :updated: frankfurt
342
343     The VNF **MUST** allow the Operator to restrict access to protected
344     resources based on the assigned permissions associated with an ID in
345     order to support Least Privilege (no more privilege than required to
346     perform job functions).
347
348 .. req::
349     :id: R-358699
350     :target: VNF
351     :keyword: MUST
352     :introduced: frankfurt
353
354     The VNF **MUST** support at least the following roles: system administrator,
355     application administrator, network function O&M.
356
357 .. req::
358     :id: R-373737
359     :target: VNF
360     :keyword: MUST
361     :introduced: frankfurt
362
363     The VNF **MUST**, if not integrated with the operator's IAM system, provide
364     a mechanism for assigning roles and/or permissions to an identity.
365
366 .. req::
367     :id: R-59391
368     :target: VNF
369     :keyword: MUST NOT
370     :updated: casablanca
371
372     The VNF **MUST NOT** allow the assumption of the permissions of another
373     account to mask individual accountability. For example, use SUDO when a
374     user requires elevated permissions such as root or admin.
375
376 .. req::
377     :id: R-86835
378     :target: VNF
379     :keyword: MUST
380     :updated: frankfurt
381
382     The VNF **MUST** set the default settings for user access
383     to deny authorization, except for a super user type of account.
384
385 .. req::
386     :id: R-81147
387     :target: VNF
388     :keyword: MUST
389     :updated: frankfurt
390
391     The VNF **MUST**, if not integrated with the Operator’s Identity and
392     Access Management system, support multifactor authentication on all
393     protected interfaces exposed by the VNF for use by human users.
394
395 .. req::
396     :id: R-39562
397     :target: VNF
398     :keyword: MUST
399
400     The VNF **MUST** disable unnecessary or vulnerable cgi-bin programs.
401
402 .. req::
403     :id: R-75041
404     :target: VNF
405     :keyword: MUST
406     :updated: casablanca
407
408     The VNF **MUST**, if not integrated with the Operator's Identity and
409     Access Management system, support configurable password expiration.
410
411 .. req::
412     :id: R-46908
413     :target: VNF
414     :keyword: MUST
415     :updated: casablanca
416
417     The VNF **MUST**, if not integrated with the Operator's Identity and
418     Access Management system, comply with "password complexity" policy. When
419     passwords are used, they shall be complex and shall at least meet the
420     following password construction requirements: (1) be a minimum configurable
421     number of characters in length, (2) include 3 of the 4 following types of
422     characters: upper-case alphabetic, lower-case alphabetic, numeric, and
423     special, (3) not be the same as the UserID with which they are associated
424     or other common strings as specified by the environment, (4) not contain
425     repeating or sequential characters or numbers, (5) not to use special
426     characters that may have command functions, and (6) new passwords must
427     not contain sequences of three or more characters from the previous
428     password.
429
430 .. req::
431    :id: R-844011
432    :target: VNF
433    :keyword: MUST
434    :introduced: casablanca
435    :updated: frankfurt
436
437    The VNF **MUST** not store authentication credentials to itself in clear
438    text or any reversible form and must use salting.
439
440 .. req::
441     :id: R-79107
442     :target: VNF
443     :keyword: MUST
444     :updated: frankfurt
445
446     The VNF **MUST**, if not integrated with the Operator’s Identity
447     and Access Management system, support the ability to lock out the
448     userID after a configurable number of consecutive unsuccessful
449     authentication attempts using the same userID. The locking mechanism
450     must be reversible by an administrator and should be reversible after
451     a configurable time period.
452
453 .. req::
454     :id: R-23135
455     :target: VNF
456     :keyword: MUST
457     :updated: frankfurt
458
459     The VNF **MUST**, if not integrated with the Operator's identity and
460     access management system, authenticate all access to protected resources.
461
462 .. req::
463     :id: R-78010
464     :target: VNF
465     :keyword: MUST
466     :updated: frankfurt
467
468     The VNF **MUST** support LDAP in order to integrate with an external identity
469     and access manage system. It MAY support other identity and access management
470     protocols.
471
472 .. req::
473    :id: R-814377
474    :target: VNF
475    :keyword: MUST
476    :introduced: casablanca
477    :updated: frankfurt
478
479    The VNF **MUST** have the capability of allowing the Operator to create,
480    manage, and automatically provision user accounts using one of the protocols
481    specified in Chapter 7.
482
483 .. req::
484    :id: R-931076
485    :target: VNF
486    :keyword: MUST
487    :introduced: casablanca
488    :updated: frankfurt
489
490    The VNF **MUST** support account names that contain at least A-Z, a-z,
491    and 0-9 character sets and be at least 6 characters in length.
492
493 .. req::
494    :id: R-581188
495    :target: VNF
496    :keyword: MUST NOT
497    :introduced: casablanca
498    :updated: frankfurt
499
500    The VNF **MUST NOT** identify the reason for a failed authentication,
501    only that the authentication failed.
502
503 .. req::
504    :id: R-479386
505    :target: VNF
506    :keyword: MUST
507    :introduced: casablanca
508    :updated: frankfurt
509
510    The VNF **MUST** provide the capability of setting a configurable message
511    to be displayed after successful login. It MAY provide a list of supported
512    character sets.
513
514 .. req::
515    :id: R-231402
516    :target: VNF
517    :keyword: MUST
518    :introduced: casablanca
519    :updated: frankfurt
520
521    The VNF **MUST** provide a means to explicitly logout, thus ending that session.
522
523 .. req::
524    :id: R-251639
525    :target: VNF
526    :keyword: MUST
527    :introduced: frankfurt
528
529    The VNF **MUST** provide explicit confirmation of a session termination
530    such as a message, new page, or rerouting to a login page.
531
532 .. req::
533    :id: R-45719
534    :target: VNF
535    :keyword: MUST
536    :introduced: casablanca
537    :updated: frankfurt
538
539    The VNF **MUST**, if not integrated with the Operator's Identity and Access
540    Management system, enforce a configurable "terminate idle sessions"
541    policy by terminating the session after a configurable period of inactivity.
542
543
544 VNF API Security Requirements
545 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
546
547 This section covers API security requirements when these are used by the
548 VNFs. Key security areas covered in API security are Access Control,
549 Authentication, Passwords, PKI Authentication Alarming, Anomaly
550 Detection, Lawful Intercept, Monitoring and Logging, Input Validation,
551 Cryptography, Business continuity, Biometric Authentication,
552 Identification, Confidentiality and Integrity, and Denial of Service.
553
554 The solution in a virtual environment needs to meet the following API
555 security requirements:
556
557
558 API Requirements
559
560 .. req::
561     :id: R-43884
562     :target: VNF
563     :keyword: SHOULD
564     :updated: casablanca
565
566     The VNF **SHOULD** integrate with the Operator's authentication and
567     authorization services (e.g., IDAM).
568
569 .. req::
570     :id: R-21652
571     :target: VNF
572     :keyword: MUST
573
574     The VNF **MUST** implement the following input validation
575     control: Check the size (length) of all input. Do not permit an amount
576     of input so great that it would cause the VNF to fail. Where the input
577     may be a file, the VNF API must enforce a size limit.
578
579 .. req::
580     :id: R-54930
581     :target: VNF
582     :keyword: MUST
583     :updated: casablanca
584
585     The VNF **MUST** implement the following input validation controls:
586     Do not permit input that contains content or characters inappropriate
587     to the input expected by the design. Inappropriate input, such as
588     SQL expressions, may cause the system to execute undesirable and
589     unauthorized transactions against the database or allow other
590     inappropriate access to the internal network (injection attacks).
591
592 .. req::
593     :id: R-21210
594     :target: VNF
595     :keyword: MUST
596     :updated: casablanca
597
598     The VNF **MUST** implement the following input validation control
599     on APIs: Validate that any input file has a correct and valid
600     Multipurpose Internet Mail Extensions (MIME) type. Input files
601     should be tested for spoofed MIME types.
602
603 VNF Security Analytics Requirements
604 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
605
606 This section covers VNF security analytics requirements that are mostly
607 applicable to security monitoring. The VNF Security Analytics cover the
608 collection and analysis of data following key areas of security
609 monitoring:
610
611 -  Anti-virus software
612
613 -  Logging
614
615 -  Data capture
616
617 -  Tasking
618
619 -  DPI
620
621 -  API based monitoring
622
623 -  Detection and notification
624
625 -  Resource exhaustion detection
626
627 -  Proactive and scalable monitoring
628
629 -  Mobility and guest VNF monitoring
630
631 -  Closed loop monitoring
632
633 -  Interfaces to management and orchestration
634
635 -  Malformed packet detections
636
637 -  Service chaining
638
639 -  Dynamic security control
640
641 -  Dynamic load balancing
642
643 -  Connection attempts to inactive ports (malicious port scanning)
644
645 The following requirements of security monitoring need to be met by the
646 solution in a virtual environment.
647
648 Security Analytics Requirements
649
650
651 .. req::
652     :id: R-48470
653     :target: VNF
654     :keyword: MUST
655
656     The VNF **MUST** support Real-time detection and
657     notification of security events.
658
659 .. req::
660     :id: R-32636
661     :target: VNF
662     :keyword: MUST
663
664     The VNF **MUST** support API-based monitoring to take care of
665     the scenarios where the control interfaces are not exposed, or are
666     optimized and proprietary in nature.
667
668 .. req::
669     :id: R-22367
670     :target: VNF
671     :keyword: MUST
672     :updated: casablanca
673
674     The VNF **MUST** support detection of malformed packets due to software
675     misconfiguration or software vulnerability, and generate an error to the
676     syslog console facility.
677
678 .. req::
679     :id: R-73223
680     :target: VNF
681     :keyword: MUST
682
683     The VNF **MUST** support proactive monitoring to detect and
684     report the attacks on resources so that the VNFs and associated VMs can
685     be isolated, such as detection techniques for resource exhaustion, namely
686     OS resource attacks, CPU attacks, consumption of kernel memory, local
687     storage attacks.
688
689 .. req::
690     :id: R-58370
691     :target: VNF
692     :keyword: SHOULD
693     :updated: casablanca
694
695     The VNF **SHOULD** operate with anti-virus software which produces alarms
696     every time a virus is detected.
697
698 .. req::
699     :id: R-56920
700     :target: VNF
701     :keyword: MUST
702
703     The VNF **MUST** protect all security audit logs (including
704     API, OS and application-generated logs), security audit software, data,
705     and associated documentation from modification, or unauthorized viewing,
706     by standard OS access control mechanisms, by sending to a remote system,
707     or by encryption.
708
709 .. req::
710     :id: R-54520
711     :target: VNF
712     :keyword: MUST
713     :updated: casablanca
714
715     The VNF **MUST** log successful and unsuccessful authentication
716     attempts, e.g., authentication associated with a transaction,
717     authentication to create a session, authentication to assume elevated
718     privilege.
719
720 .. req::
721     :id: R-55478
722     :target: VNF
723     :keyword: MUST
724
725     The VNF **MUST** log logoffs.
726
727 .. req::
728     :id: R-13344
729     :target: VNF
730     :keyword: MUST
731
732     The VNF **MUST** log starting and stopping of security
733     logging.
734
735 .. req::
736     :id: R-07617
737     :target: VNF
738     :keyword: MUST
739     :updated: casablanca
740
741     The VNF **MUST** log success and unsuccessful creation, removal, or
742     change to the inherent privilege level of users.
743
744 .. req::
745     :id: R-94525
746     :target: VNF
747     :keyword: MUST
748     :updated: casablanca
749
750     The VNF **MUST** log connections to the network listeners of the
751     resource.
752
753 .. req::
754     :id: R-31614
755     :target: VNF
756     :keyword: MUST
757
758     The VNF **MUST** log the field "event type" in the security audit
759     logs.
760
761 .. req::
762     :id: R-97445
763     :target: VNF
764     :keyword: MUST
765
766     The VNF **MUST** log the field "date/time" in the security audit
767     logs.
768
769 .. req::
770     :id: R-25547
771     :target: VNF
772     :keyword: MUST
773
774     The VNF **MUST** log the field "protocol" in the security audit logs.
775
776 .. req::
777     :id: R-06413
778     :target: VNF
779     :keyword: MUST
780
781     The VNF **MUST** log the field "service or program used for access"
782     in the security audit logs.
783
784 .. req::
785     :id: R-15325
786     :target: VNF
787     :keyword: MUST
788
789     The VNF **MUST** log the field "success/failure" in the
790     security audit logs.
791
792 .. req::
793     :id: R-89474
794     :target: VNF
795     :keyword: MUST
796
797     The VNF **MUST** log the field "Login ID" in the security audit logs.
798
799 .. req::
800     :id: R-04982
801     :target: VNF
802     :keyword: MUST NOT
803
804     The VNF **MUST NOT** include an authentication credential,
805     e.g., password, in the security audit logs, even if encrypted.
806
807 .. req::
808     :id: R-63330
809     :target: VNF
810     :keyword: MUST
811     :updated: casablanca
812
813     The VNF **MUST** detect when its security audit log storage
814     medium is approaching capacity (configurable) and issue an alarm.
815
816 .. req::
817     :id: R-41252
818     :target: VNF
819     :keyword: MUST
820
821     The VNF **MUST** support the capability of online storage of
822     security audit logs.
823
824 .. req::
825     :id: R-41825
826     :target: VNF
827     :keyword: MUST
828     :updated: casablanca
829
830     The VNF **MUST** activate security alarms automatically when
831     a configurable number of consecutive unsuccessful login attempts
832     is reached.
833
834 .. req::
835     :id: R-43332
836     :target: VNF
837     :keyword: MUST
838     :updated: casablanca
839
840     The VNF **MUST** activate security alarms automatically when
841     it detects the successful modification of a critical system or
842     application file.
843
844 .. req::
845     :id: R-74958
846     :target: VNF
847     :keyword: MUST
848     :updated: casablanca
849
850     The VNF **MUST** activate security alarms automatically when
851     it detects an unsuccessful attempt to gain permissions
852     or assume the identity of another user.
853
854 .. req::
855     :id: R-15884
856     :target: VNF
857     :keyword: MUST
858
859     The VNF **MUST** include the field "date" in the Security alarms
860     (where applicable and technically feasible).
861
862 .. req::
863     :id: R-23957
864     :target: VNF
865     :keyword: MUST
866
867     The VNF **MUST** include the field "time" in the Security alarms
868     (where applicable and technically feasible).
869
870 .. req::
871     :id: R-71842
872     :target: VNF
873     :keyword: MUST
874
875     The VNF **MUST** include the field "service or program used for
876     access" in the Security alarms (where applicable and technically feasible).
877
878 .. req::
879     :id: R-57617
880     :target: VNF
881     :keyword: MUST
882
883     The VNF **MUST** include the field "success/failure" in the
884     Security alarms (where applicable and technically feasible).
885
886 .. req::
887     :id: R-99730
888     :target: VNF
889     :keyword: MUST
890
891     The VNF **MUST** include the field "Login ID" in the Security
892     alarms (where applicable and technically feasible).
893
894 .. req::
895     :id: R-29705
896     :target: VNF
897     :keyword: MUST
898     :updated: casablanca
899
900     The VNF **MUST** restrict changing the criticality level of a
901     system security alarm to users with administrative privileges.
902
903 .. req::
904     :id: R-13627
905     :target: VNF
906     :keyword: MUST
907
908     The VNF **MUST** monitor API invocation patterns to detect
909     anomalous access patterns that may represent fraudulent access or other
910     types of attacks, or integrate with tools that implement anomaly and
911     abuse detection.
912
913 .. req::
914     :id: R-04492
915     :target: VNF
916     :keyword: MUST
917     :updated: casablanca
918
919     The VNF **MUST** generate security audit logs that can be sent
920     to Security Analytics Tools for analysis.
921
922 .. req::
923     :id: R-30932
924     :target: VNF
925     :keyword: MUST
926     :updated: casablanca
927
928     The VNF **MUST** log successful and unsuccessful access to VNF
929     resources, including data.
930
931 .. req::
932     :id: R-54816
933     :target: VNF
934     :keyword: MUST
935     :updated: casablanca
936
937     The VNF **MUST** support the storage of security audit logs for a
938     configurable period of time.
939
940 .. req::
941     :id: R-84160
942     :target: VNF
943     :keyword: MUST
944
945     The VNF **MUST** have security logging for VNFs and their
946     OSs be active from initialization. Audit logging includes automatic
947     routines to maintain activity records and cleanup programs to ensure
948     the integrity of the audit/logging systems.
949
950 .. req::
951     :id: R-34552
952     :target: VNF
953     :keyword: MUST
954     :updated: casablanca
955
956     The VNF **MUST** be implemented so that it is not vulnerable to OWASP
957     Top 10 web application security risks.
958
959 .. req::
960     :id: R-33488
961     :target: VNF
962     :keyword: MUST
963     :updated: casablanca
964
965     The VNF **MUST** protect against all denial of service
966     attacks, both volumetric and non-volumetric, or integrate with external
967     denial of service protection tools.
968
969 .. req::
970    :id: R-629534
971    :target: VNF
972    :keyword: MUST
973    :introduced: casablanca
974
975    The VNF **MUST** be capable of automatically synchronizing the system clock
976    daily with the Operator's trusted time source, to assure accurate time
977    reporting in log files. It is recommended that Coordinated Universal Time
978    (UTC) be used where possible, so as to eliminate ambiguity owing to daylight
979    savings time.
980
981 .. req::
982    :id: R-303569
983    :target: VNF
984    :keyword: MUST
985    :introduced: casablanca
986
987    The VNF **MUST** log the Source IP address in the security audit logs.
988
989 .. req::
990    :id: R-703767
991    :target: VNF
992    :keyword: MUST
993    :introduced: casablanca
994
995    The VNF **MUST** have the capability to securely transmit the security logs
996    and security events to a remote system before they are purged from the
997    system.
998
999 .. req::
1000    :id: R-465236
1001    :target: VNF
1002    :keyword: SHOULD
1003    :introduced: casablanca
1004
1005    The VNF **SHOULD** provide the capability of maintaining the integrity of
1006    its static files using a cryptographic method.
1007
1008 .. req::
1009    :id: R-859208
1010    :target: VNF
1011    :keyword: MUST
1012    :introduced: casablanca
1013
1014    The VNF **MUST** log automated remote activities performed with
1015    elevated privileges.
1016
1017 VNF Data Protection Requirements
1018 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1019
1020 This section covers VNF data protection requirements that are mostly
1021 applicable to security monitoring.
1022
1023
1024 Data Protection Requirements
1025
1026 .. req::
1027     :id: R-58964
1028     :target: VNF
1029     :keyword: MUST
1030     :updated: casablanca
1031
1032     The VNF **MUST** provide the capability to restrict read
1033     and write access to data handled by the VNF.
1034
1035 .. req::
1036     :id: R-83227
1037     :target: VNF
1038     :keyword: MUST
1039
1040     The VNF **MUST** Provide the capability to encrypt data in
1041     transit on a physical or virtual network.
1042
1043 .. req::
1044     :id: R-32641
1045     :target: VNF
1046     :keyword: MUST
1047     :updated: casablanca
1048
1049     The VNF **MUST** provide the capability to encrypt data on
1050     non-volatile memory.Non-volative memory is storage that is
1051     capable of retaining data without electrical power, e.g.
1052     Complementary metal-oxide-semiconductor (CMOS) or hard drives.
1053
1054 .. req::
1055     :id: R-13151
1056     :target: VNF
1057     :keyword: SHOULD
1058
1059     The VNF **SHOULD** disable the paging of the data requiring
1060     encryption, if possible, where the encryption of non-transient data is
1061     required on a device for which the operating system performs paging to
1062     virtual memory. If not possible to disable the paging of the data
1063     requiring encryption, the virtual memory should be encrypted.
1064
1065 .. req::
1066     :id: R-73067
1067     :target: VNF
1068     :keyword: MUST
1069     :updated: casablanca
1070
1071     The VNF **MUST** use NIST and industry standard cryptographic
1072     algorithms and standard modes of operations when implementing
1073     cryptography.
1074
1075 .. req::
1076     :id: R-12467
1077     :target: VNF
1078     :keyword: MUST NOT
1079     :updated: casablanca
1080
1081     The VNF **MUST NOT** use compromised encryption algorithms.
1082     For example, SHA, DSS, MD5, SHA-1 and Skipjack algorithms.
1083     Acceptable algorithms can be found in the NIST FIPS publications
1084     (https://csrc.nist.gov/publications/fips) and in the
1085     NIST Special Publications (https://csrc.nist.gov/publications/sp).
1086
1087 .. req::
1088     :id: R-02170
1089     :target: VNF
1090     :keyword: MUST
1091     :updated: casablanca
1092
1093     The VNF **MUST** use, whenever possible, standard implementations
1094     of security applications, protocols, and formats, e.g., S/MIME, TLS, SSH,
1095     IPSec, X.509 digital certificates for cryptographic implementations.
1096     These implementations must be purchased from reputable vendors or obtained
1097     from reputable open source communities and must not be developed in-house.
1098
1099 .. req::
1100     :id: R-70933
1101     :target: VNF
1102     :keyword: MUST
1103     :updated: casablanca
1104
1105     The VNF **MUST** provide the ability to migrate to newer
1106     versions of cryptographic algorithms and protocols with minimal impact.
1107
1108 .. req::
1109     :id: R-95864
1110     :target: VNF
1111     :keyword: MUST
1112     :updated: casablanca
1113
1114     The VNF **MUST** support digital certificates that comply with X.509
1115     standards.
1116
1117 .. req::
1118     :id: R-12110
1119     :target: VNF
1120     :keyword: MUST NOT
1121
1122     The VNF **MUST NOT** use keys generated or derived from
1123     predictable functions or values, e.g., values considered predictable
1124     include user identity information, time of day, stored/transmitted data.
1125
1126 .. req::
1127     :id: R-69610
1128     :target: VNF
1129     :keyword: MUST
1130     :updated: casablanca
1131
1132     The VNF **MUST** provide the capability of using X.509 certificates
1133     issued by an external Certificate Authority.
1134
1135 .. req::
1136     :id: R-47204
1137     :target: VNF
1138     :keyword: MUST
1139     :updated: casablanca
1140
1141     The VNF **MUST** be capable of protecting the confidentiality and integrity
1142     of data at rest and in transit from unauthorized access and modification.
1143
1144
1145 VNF Cryptography Requirements
1146 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1147
1148 This section covers VNF cryptography requirements that are mostly
1149 applicable to encryption or protocol meethods.
1150
1151 .. req::
1152     :id: R-48080
1153     :target: VNF
1154     :keyword: SHOULD
1155     :updated: casablanca
1156
1157     The VNF **SHOULD** support an automated certificate management protocol
1158     such as CMPv2, Simple Certificate Enrollment Protocol (SCEP) or
1159     Automated Certificate Management Environment (ACME).
1160
1161 .. req::
1162     :id: R-93860
1163     :target: VNF
1164     :keyword: SHOULD
1165     :updated: casablanca
1166
1167     The VNF **SHOULD** provide the capability to integrate with an
1168     external encryption service.
1169
1170 .. req::
1171     :id: R-44723
1172     :target: VNF
1173     :keyword: MUST
1174     :updated: casablanca
1175
1176     The VNF **MUST** use symmetric keys of at least 112 bits in length.
1177
1178 .. req::
1179     :id: R-25401
1180     :target: VNF
1181     :keyword: MUST
1182     :updated: casablanca
1183
1184     The VNF **MUST** use asymmetric keys of at least 2048 bits in length.
1185
1186 .. req::
1187     :id: R-52060
1188     :target: VNF
1189     :keyword: MUST
1190     :updated: casablanca
1191
1192     The VNF **MUST** provide the capability to configure encryption
1193     algorithms or devices so that they comply with the laws of the jurisdiction
1194     in which there are plans to use data encryption.
1195
1196 .. req::
1197     :id: R-83500
1198     :target: VNF
1199     :keyword: MUST
1200     :updated: casablanca
1201
1202     The VNF **MUST** provide the capability of allowing certificate
1203     renewal and revocation.
1204
1205 .. req::
1206     :id: R-29977
1207     :target: VNF
1208     :keyword: MUST
1209     :updated: casablanca
1210
1211     The VNF **MUST** provide the capability of testing the validity
1212     of a digital certificate by validating the CA signature on the certificate.
1213
1214 .. req::
1215     :id: R-24359
1216     :target: VNF
1217     :keyword: MUST
1218     :updated: casablanca
1219
1220     The VNF **MUST** provide the capability of testing the validity
1221     of a digital certificate by validating the date the certificate is being
1222     used is within the validity period for the certificate.
1223
1224 .. req::
1225     :id: R-39604
1226     :target: VNF
1227     :keyword: MUST
1228     :updated: casablanca
1229
1230     The VNF **MUST** provide the capability of testing the
1231     validity of a digital certificate by checking the Certificate Revocation
1232     List (CRL) for the certificates of that type to ensure that the
1233     certificate has not been revoked.
1234
1235 .. req::
1236     :id: R-75343
1237     :target: VNF
1238     :keyword: MUST
1239     :updated: casablanca
1240
1241     The VNF **MUST** provide the capability of testing the
1242     validity of a digital certificate by recognizing the identity represented
1243     by the certificate - the "distinguished name".
1244
1245 .. req::
1246     :id: R-49109
1247     :target: VNF or PNF
1248     :keyword: MUST
1249     :updated: el alto
1250
1251     The VNF or PNF **MUST** support HTTPS using TLS v1.2 or higher
1252     with strong cryptographic ciphers.
1253
1254 .. req::
1255     :id: R-41994
1256     :target: VNF
1257     :keyword: MUST
1258     :updated: casablanca
1259
1260     The VNF **MUST** support the use of X.509 certificates issued from any
1261     Certificate Authority (CA) that is compliant with RFC5280, e.g., a public
1262     CA such as DigiCert or Let's Encrypt, or an RFC5280  compliant Operator
1263     CA.
1264
1265     Note: The VNF provider cannot require the use of self-signed certificates
1266     in an Operator's run time environment.