Attachment_8_FMF_App_Security_Control_Selection_Worksheet.xlsx

XLSX spreadsheet 141 KB Posted

Attached to
Flight Management Function (FMF) Software Application
Solicitation number
N00421-17-R-0021
Issued by

About this file

App Security Control Worksheet

View the file

Other files

File Type Posted
Attachment_6__Cost-Price_worksheets_REV_1.xlsx XLSX spreadsheet
Industry_questions_FINAL_31_AUG.docx DOCX document
Amendment_0002.docx DOCX document
Attachment_A__Safety_LOR-Table.xlsx XLSX spreadsheet
Amendment_0001.docx DOCX document
Attachment_3_N00421-17-R-0021_Past_Performance_Information_Form_Mar_2017.pdf PDF
Attachment_11_OT-17-20085_-_Software_Accomplishment_Summary_(SAS).pdf PDF
Attachment_5__Offeror_Summary_Table.xlsx XLSX spreadsheet
Attachment_2_Govt_Spec_for_FMF_SW_App_Rev_A_29_June_2017_w_signatures.pdf PDF
Attachment_6__Cost-Price_worksheets_07-10-17_WBS_SRM.xlsx XLSX spreadsheet
Attachment_10_OT-17-20084_-_FACE_Conformance_Verification_Artifacts_(CVA).pdf PDF
ATTACHMENT_1_-_N00421-17-R-0021-_FMF_APP_SOW.PDF PDF
Attachment_14_OT-17-20089_-_Software_Metrics_Report_(SWMR).pdf PDF
Attachment_4_Contractor_Performance_Assessment_Questionnaire_May_2016.msg.pdf PDF
Attachment_7_Part_B__Annex-9-Government-Furnished-Property-Compliance-Checklist-NMCARS-13-12.....xlsx XLSX spreadsheet
Attachment_15_FMF_App_CDRLs_signed.pdf PDF
Attachment_7_Part_A_NMCARS_Change_13-12_-_Annex_9_Instructions_with_NAVAIR_Notes.docx DOCX document
Attachment__12_-_OT-17-20086_-_Flight_Management_Function_Face_Data_Model_(FMF_FACE_DM).pdf PDF
Attachment_13_OT-17-20087_-_System_Integration_Lab_Desctription.pdf PDF
N00421-17-R-0021.docx DOCX document
Attachment_9_OT-17-20083_-_Plan_for_Software_Aspects_of_Certification_(PSAC).pdf PDF
SOW_for_RNP_RNAV_FMF_v2.7_(20161222).docx DOCX document
Show all 22

On GovTribe

Work with this file

  • Download the original file
  • Contacts named in this file
  • Similar government files
  • Ask GovTribe AI about this file

Text version

Instructions

FMF App Security Controls

Exported On: 4/19/2017
Flight Management Functionality (FMF) Software Application

Risk Management Framework (RMF) Security Control Selection Worksheet

RMF Control NumberControl Correlation Identifier (CCI)CCI DefinitionImplementation GuidanceAssessment ProceduresApplication Security & Development Security Technical Implementation Guide (STIG) Audit IDSoftware Application Security & Development Security Technical Implementation Guide (STIG) Audit Item DiscussionApplicable or Not applicable to the FMF App?Justification or explanation for Not applicable STIG Audit Item DiscussionCompliant or Non-compliant with STIG Audit Item?Describe how compliance with STIG Audit Item Discussion is being met. If applicable, indicate the CDRL, (by title, page, and paragraph) which describes compliance with the STIG Audit Item Discussion.Describe the limiting factors contributing to non-compliance and mitigating factors which reduce overall impact.
CM-5 (3)CCI-001749The information system prevents the installation of organization-defined software components without verification the software component has been digitally signed using a certificate that is recognized and approved by the organization.The organization being inspected/assessed documents and implements a process to prevent the installation of software onto any software components when the vendor provides digitally signed products without verification that software has been digitally signed using a certificate and approved by the organization.

DoD has defined the software components as any software components when the vendor provides digitally signed products. The organization conducting the inspection/assessment obtains and examines the documented process for preventing the installation of software onto any software components when the vendor provides digitally signed products without verification that software has been digitally signed using a certificate and approved by the organization.

The organization conducting the inspection/assessment reviews software on a sampling of the defined components to ensure that only software digitally signed by a defined CA is installed.

DoD has defined the software components as any software components when the vendor provides digitally signed products.APSC-DV-0001430Discussion: Changes to any software components can have significant effects on the overall security of the application. Verifying software components have been digitally signed using a certificate that is recognized and approved by the organization ensures the software has not been tampered with and that it has been provided by a trusted vendor. Accordingly, patches, service packs, or application components must be signed with a certificate recognized and approved by the organization. Verifying the authenticity of the software prior to installation validates the integrity of the patch or upgrade received from a vendor. This ensures the software has not been tampered with and that it has been provided by a trusted vendor. Self-signed certificates are disallowed by this requirement. The application should not have to verify the software again. This requirement does not mandate DoD certificates for this purpose; however, the certificate used to verify the software must be from an approved CA. If this capability is not present, the vendor must provide a cryptographic hash value that can be verified by a system administrator prior to installation.ApplicableNot applicable
CM-6CCI-000366The organization implements the security configuration settings.The organization being inspected/assessed must develop and document a process for implementing DoD security configuration or implementation guidance (e.g. STIGs, NSA configuration guides, CTOs, DTMs etc.).

DoD has defined the security configuration checklists as DoD security configuration or implementation guidance (e.g. STIGs, NSA configuration guides, CTOs, DTMs etc.).

The organization conducting the inspection/assessment obtains and examines the documented process to ensure the organization being inspected/assessed implements DoD security configuration or implementation guidance (e.g. STIGs, NSA configuration guides, CTOs, DTMs etc.).

The organization conducting the inspection/assessment tests a sampling of information system components to ensure they comply with the required settings.

DoD has defined the security configuration checklists as DoD security configuration or implementation guidance (e.g. STIGs, NSA configuration guides, CTOs, DTMs etc.).APSC-DV-001460Discussion: An application vulnerability assessment is a test conducted in order to identify weaknesses and security vulnerabilities that may exist within an application. The testing must cover all aspects and components of the application architecture. Vulnerability assessment tests normally utilize a combination of specialized software called application vulnerability scanners as well as custom scripts and manual tests. In some instances, multiple tools are required in order to test all aspects of application features, functions and architecture. The vulnerability scanner is typically configured to communicate with the application through the user interface or via an applications communication port. In addition to using automated tools, manual tests conducted from the OS console such as executing custom scripts or reviewing configuration settings for known vulnerabilities may also be included as part of the test. Testers will typically utilize application user test accounts in order to test application features and functionality such as adding content, executing queries and completing transactions. The vulnerability testing software utilizes user actions and access as well as a list of known security vulnerabilities in order to detect and identify weak security controls or misconfigurations that could potentially be manipulated by the user or create a security vulnerability. Testing must be conducted on a periodic basis while the application is in production and subsequent to system changes to ensure any changes made to the system do not introduce new security vulnerabilities.CompliantNon-compliant
SA-11CCI-003178The organization requires the developer of the information system, system component, or information system service to correct flaws identified during security testing/evaluation.The organization being inspected/assessed requires the developer to correct flaws identified during security testing/evaluation and to document and provide evidence that the flaws were corrected.
The organization conducting the inspection/assessment obtains and examines the contracts/agreements to ensure the organization being inspected/assessed requires that the developer of the information system, system component, or information system service correct flaws identified during security testing/evaluation and provide evidence.APSC-DV-001995Discussion: A race condition is a timing event within an application that can become a security vulnerability. A race condition can occur when a pair of programming calls operating simultaneously do not work in a sequential or coordinated manner. A race condition is a timing event within software that can become a security vulnerability if the calls are not performed in the correct order. There are different types of race conditions and they are dependent upon the action that the application is undertaking when the race condition occurs. Some examples of race conditions include but are not limited to:

• Time of check, time of use: the time in which a given resource is checked, and the time that resource is used.

• Thread based: two threads of execution use a resource simultaneously, resource may be invalid when used.

Switch based: variable switches values while switch statement is in progress. Developers must be cognizant of programming sequence and use sanity checks to validate data prior to acting upon it. A code review or a static code analysis is the method used to identify race conditions.

SI-10 CCI-001310 The information system checks the validity of organization-defined inputs. The organization being inspected/assessed configures the information system to check the validity of all inputs except those identified specifically by the organization.

For information system components that have applicable STIGs or SRGs, the organization being inspected/assessed must comply with the STIG/SRG guidance that pertains to CCI 1310.

DoD has defined the information inputs as all inputs except those identified specifically by the organization. The organization conducting the inspection/assessment examines the information system to ensure the organization being inspected/assessed configures the information system to check the validity of all inputs except those identified specifically by the organization.

For information system components that have applicable STIGs or SRGs, the organization conducting the inspection/assessment evaluates the components to ensure that the organization being inspected/assessed has configured the information system in compliance with the applicable STIGs and SRGs pertaining to CCI 1310.

DoD has defined the information inputs as all inputs except those identified specifically by the organization.APSC-DV-002520Discussion: Canonical representation vulnerabilities can occur when a data conversion process does not convert the data to its simplest form resulting in the possible misrepresentation of the data. The application may behave in an unexpected manner when acting on input that has not been sanitized or normalized. Vulnerable application code is written to expect one form of data and executes its program logic on another form of data thereby creating instability or unexpected behavior.
SI-10CCI-001310The information system checks the validity of organization-defined inputs.The organization being inspected/assessed configures the information system to check the validity of all inputs except those identified specifically by the organization.

For information system components that have applicable STIGs or SRGs, the organization being inspected/assessed must comply with the STIG/SRG guidance that pertains to CCI 1310.

DoD has defined the information inputs as all inputs except those identified specifically by the organization. The organization conducting the inspection/assessment examines the information system to ensure the organization being inspected/assessed configures the information system to check the validity of all inputs except those identified specifically by the organization.

For information system components that have applicable STIGs or SRGs, the organization conducting the inspection/assessment evaluates the components to ensure that the organization being inspected/assessed has configured the information system in compliance with the applicable STIGs and SRGs pertaining to CCI 1310.

DoD has defined the information inputs as all inputs except those identified specifically by the organization.APSC-DV-002530Discussion: Checking the valid syntax and semantics of information system inputs (e.g., character set, length, numerical range, and acceptable values) verifies that inputs match specified definitions for format and content. Software applications typically follow well-defined protocols that use structured messages (i.e., commands or queries) to communicate between software modules or system components. Structured messages can contain raw or unstructured data interspersed with metadata or control information. If software applications use attacker-supplied inputs to construct structured messages without properly encoding such messages, then the attacker could insert malicious commands or special characters that can cause the data to be interpreted as control information or metadata. Consequently, the module or component that receives the tainted output will perform the wrong operations or otherwise interpret the data incorrectly. Prescreening inputs prior to passing to interpreters prevents the content from being unintentionally interpreted as commands. Input validation helps to ensure accurate and correct inputs and prevent attacks such as cross-site scripting and a variety of injection attacks. Absence of input validation opens an application to improper manipulation of data. The lack of input validation can lead immediate access of application, denial of service, and corruption of data. Invalid input includes presence of scripting tags within text fields, query string manipulation, and invalid data types and sizes. When an application validates input, it will only execute provided input after it has evaluated the input, validated the input and determined the data is in an expected format, and content is not extraneous or malformed. Comprehensive application security testing and code reviews are required to ensure the application is not vulnerable to input validation vulnerabilities. Application security code reviews should be conducted during the development phase to find and address input validation errors. When code reviews are not possible, fuzz testing can be performed on the application to attempt and identify vulnerable data input fields.
SI-10 (3)CCI-002754The information system behaves in a predictable and documented manner that reflects organizational and system objectives when invalid inputs are received.The organization being inspected/assessed documents proper behavior that reflects organizational and system objectives for when invalid inputs are received.

The organization being inspected/assessed configures the information system to behave in the documented manner when invalid inputs are received.

For information system components that have applicable STIGs or SRGs, the organization being inspected/assessed must comply with the STIG/SRG guidance that pertains to CCI 2754. The organization conducting the inspection/assessment obtains and examines the documented behavior to ensure the organization being inspected/assessed documents proper behavior that reflects organizational and system objectives for when invalid inputs are received.

The organization conducting the inspection/assessment examines the information system to ensure the organization being inspected/assessed configures the information system to behave in the documented manner when invalid inputs are received.

For information system components that have applicable STIGs or SRGs, the organization conducting the inspection/assessment evaluates the components to ensure that the organization being inspected/assessed has configured the information system in compliance with the applicable STIGs and SRGs pertaining to CCI 2754. APSC-DV-002560 Discussion: A common application vulnerability is unpredictable behavior due to improper input validation. This requirement guards against adverse or unintended system behavior caused by invalid inputs, where information system responses to the invalid input may be disruptive or cause the system to fail into an unsafe state. Data received from the user should always be suspected as being malicious and always validated prior to using it as input to the application. Some examples of input methods:

• Forms Data

• URL parameters

• Hidden Fields

• Cookies

• HTTP Headers or anything in the HTTP request

• Client data entry fields Items to validate:

• Out of range values/Boundary

• Data length

• Validate types of characters allowed

• Whitelist validation for known good data input while denying all other input

SI-16 CCI-002824 The information system implements organization-defined security safeguards to protect its memory from unauthorized code execution. The organization being inspected/assessed configures the information system to implement security safeguards defined in SI-16, CCI 2823 to protect its memory from unauthorized code execution.

For information system components that have applicable STIGs or SRGs, the organization being inspected/assessed must comply with the STIG/SRG guidance that pertains to CCI 2824. The organization conducting the inspection/assessment examines the information system to ensure the organization being inspected/assessed configures the information system to implement security safeguards defined in SI-16, CCI 2823 to protect its memory from unauthorized code execution.

For information system components that have applicable STIGs or SRGs, the organization conducting the inspection/assessment evaluates the components to ensure that the organization being inspected/assessed has configured the information system in compliance with the applicable STIGs and SRGs pertaining to CCI 2824.APSC-DV-002590Discussion: A buffer overflow occurs when a program exceeds the amount of data allocated to a buffer. The buffer is a sequential section of memory and when the data is written outside the memory bounds, the program can crash or malicious code can be executed. Security safeguards employed to protect memory include, for example, data execution prevention and address space layout randomization. Data execution prevention safeguards can either be hardware-enforced or software-enforced with hardware providing the greater strength of mechanism. Buffer overflows can manifest as stack overflows, heap overflows integer overflows and format string overflows. Each type of overflow is dependent upon the underlying application language and the context in which the overflow is executed. Integer overflows can lead to infinite looping when loop index variables are compromised and cause a denial of service. If the integer is used in data references, the data can become corrupt. Also, using the integer in memory allocation can cause buffer overflows, and a denial of service. Integers used in access control mechanisms can potentially trigger buffer overflows, which can be used to execute arbitrary code. A code review, static code analysis or active vulnerability or fuzz testing are methods used to identify overflows within application code.
CA-2 (2)CCI-000256The organization includes as part of security control assessments announced or unannounced, one or more of the following: in-depth monitoring, vulnerability scanning; malicious user testing; insider threat assessment; performance/load testing and organization-defined other forms of security assessment on an organization-defined frequency.The organization being assessed/inspected must document how they will annually conduct tests and exercises of the implemented security controls in their security assessment plan. The tests and exercises may consist of activities such as in-depth monitoring; vulnerability scanning; malicious user testing; insider threat assessment; performance/load testing; or other forms of security assessment defined in CA-2 (2), CCI 1582.

Vulnerability scans are not the same as penetration testing.

DoD has defined the frequency as annually. The organization conducting the inspection/assessment obtains and examines the test and exercise plan documented in the security assessment plan as well as the results of one or more of the latest security assessments to ensure the organization being inspected/assessed is conducting the assessments required in their security assessment plan annually.

DoD has defined the frequency as annually.APSC-DV-002930Discussion: Use of automated scanning tools accompanied with manual testing/validation which confirms or expands on the automated test results is an accepted best practice when performing application security testing. Automated scanning tools expedite and help to standardize security testing, they can incorporate known attack methods and procedures, test for libraries and other software modules known to be vulnerable to attack and utilize a test method known as "fuzz testing". Fuzz testing is a testing process where the application is provided invalid, unexpected, or random data. Poorly designed and coded applications will become unstable or crash. Properly designed and coded applications will reject improper and unexpected data input from application clients and remain stable. Many vulnerability scanning tools provide automated fuzz testing capabilities for the testing of web applications. All of these tools help to identify a wide range of application vulnerabilities including, but not limited to; buffer overflows, cross-site scripting flaws, denial of service format bugs and SQL injection, all of which can lead to a successful compromise of the system or result in a denial of service. Due to changes in the production environment, it is a good practice to schedule periodic active testing of production web applications. Ideally, this will occur prior to deployment and after updates or changes to the application production environment. It is imperative that automated scanning tools are configured properly to ensure that all of the application components that can be tested are tested. In the case of web applications, some of the application code base may be accessible on the website and could potentially be corrected by a knowledgeable system administrator. Active testing is different from code review testing in that active testing does not require access to the application source code base. A code review requires complete code base access and is normally performed by the development team. If vulnerability testing is not conducted, there is the distinct potential that security vulnerabilities could be unknowingly introduced into the application environment.
CM-9CCI-001795The organization implements a configuration management plan for the information system that establishes a process for managing the configuration of the configuration items.The organization being inspected/assessed will implement a configuration management plan that has a process for controlling changes to configuration items.The organization conducting the inspection/assessment obtains and examines the configuration management plan as well as evidence of implementation (e.g., completed change requests, meeting minutes, and other relevant documents) to ensure the organization being inspected/assessed implements a configuration management plan for the information system that establishes a process for managing the configuration of the configuration items.APSC-DV-002995Discussion: A Configuration Management (CM) repository is used to manage application code versions and to securely store application code. Failure to properly apply security patches and secure the software Configuration Management system could affect the confidentiality and integrity of the application source-code. Compromise of the Configuration Management system could lead to unauthorized changes to applications including the addition of malware, root kits, back doors, logic bombs or other malicious functions into valid application code. This requirement is intended to be applied to application developers or organizations responsible for code management or who have and operate an application CM repository.
CM-9CCI-001795The organization implements a configuration management plan for the information system that establishes a process for managing the configuration of the configuration items.The organization being inspected/assessed will implement a configuration management plan that has a process for controlling changes to configuration items.The organization conducting the inspection/assessment obtains and examines the configuration management plan as well as evidence of implementation (e.g., completed change requests, meeting minutes, and other relevant documents) to ensure the organization being inspected/assessed implements a configuration management plan for the information system that establishes a process for managing the configuration of the configuration items.APSC-DV-003000Discussion: A Configuration Management (CM) repository is used to manage application code versions and to securely store application code. Incorrect access privileges to the CM repository can lead to malicious code or unintentional code being introduced into the application. This requirement is intended to be applied to application developers or organizations responsible for code management or who have and operate an application CM repository.
CM-9CCI-001795The organization implements a configuration management plan for the information system that establishes a process for managing the configuration of the configuration items.The organization being inspected/assessed will implement a configuration management plan that has a process for controlling changes to configuration items.The organization conducting the inspection/assessment obtains and examines the configuration management plan as well as evidence of implementation (e.g., completed change requests, meeting minutes, and other relevant documents) to ensure the organization being inspected/assessed implements a configuration management plan for the information system that establishes a process for managing the configuration of the configuration items.APSC-DV-003010Discussion: Software Configuration Management (SCM) is very important in tracking code releases, baselines, and managing access to the configuration management repository. The SCM plan identifies what should be under configuration management control. Without an SCM plan that addresses code security issues, code releases can be tracked and vulnerabilities can be inserted intentionally or unintentionally into the code base of the application. This requirement is intended to be applied to application developers or organizations responsible for code management or who have and operate an application configuration management repository (CMR). The SCM plan identifies all objects created during the development process subject to configuration control. The SCM plan maintains procedures for identifying individual application components, as well as, entire application releases during all phases of the software development lifecycle. The SCM plan identifies and tracks all actions and changes resulting from a change request from initiation to release. The SCM plan contains procedures to identify, document, review, and authorize any change requests to the application. The SCM plan defines the responsibilities, the actions to be performed, the tools, techniques and methodologies, and defines an initial set of baselined software components. The SCM plan objects have security classifications labels. The SCM plan identifies tools and version numbers used in the software development lifecycle. The SCM plan identifies mechanisms for controlled access of simultaneous individuals updating the same application component. The SCM plan assures only authorized changes by authorized persons are possible. The SCM plan identifies mechanisms to control access and audit changes between different versions of objects subject to configuration control. The SCM plan identifies mechanisms to track and audit all modifications of objects under configuration control. Audits include the originator and date and time of the modification. The SCM plan should contain the following:

• Description of the configuration control and change management process

• Types of objects developed

• Roles and responsibilities of the organization The SCM plan should also contain the following:

• Defined responsibilities

• Actions to be performed

• Tools used in the process

• Techniques and methodologies

• Initial set of baselined software components The SCM plan should identify all objects that are under configuration management control. The SCM plan should identify third-party tools and respective version numbers. The SCM plan should identify mechanisms for controlled access of individuals simultaneously updating the same application component. The SCM plan assures only authorized changes by authorized persons are allowed. The SCM plan should identify mechanisms to control access and audit changes between different versions of objects subject to configuration control. The SCM plan should have procedures for label versions of application components and application builds under configuration management control. The configuration management repository (CMR) should track change requests from beginning to end. The configuration management repository (CMR) should authorize change requests to the application. The configuration management repository (CMR) should contain security classification labels for code and documentation in the repository. Classification labels are not applicable to unclassified systems. The configuration management repository (CMR) should monitor all objects under CMR control for auditing.

CM-9CCI-001795The organization implements a configuration management plan for the information system that establishes a process for managing the configuration of the configuration items.The organization being inspected/assessed will implement a configuration management plan that has a process for controlling changes to configuration items.The organization conducting the inspection/assessment obtains and examines the configuration management plan as well as evidence of implementation (e.g., completed change requests, meeting minutes, and other relevant documents) to ensure the organization being inspected/assessed implements a configuration management plan for the information system that establishes a process for managing the configuration of the configuration items.APSC-DV-003020Discussion: Software Configuration Management (SCM) is very important in tracking code releases, baselines, and managing access to the configuration management repository. The SCM plan identifies what should be under configuration management control. Without an SCM plan code, and a CCB, releases can be tracked and vulnerabilities can be inserted intentionally or unintentionally into the code base of the application. This requirement is intended to be applied to application developers or organizations responsible for code management or who have and operate an application CM repository.
CP-9CCI-000540The organization protects the confidentiality, integrity, and availability of backup information at storage locations.The organization being inspected/assessed will protect the confidentiality, integrity, and availability of backup information at the storage location IAW the system security plan.The organization conducting the inspection/assessment obtains and examines the system security plan and ensures backup information at the storage location is protected IAW the system security plan.APSC-DV-003080Discussion: Application developers and application administrators must take steps to ensure continuity of development effort and operations should a disaster strike. Steps include protecting back-up copies of development code and application software. Improper storage of the back-up copies can result in extended outages of the information system in the event of a fire or other situation that results in destruction of the back-up as well as the operating copy. To address this risk, copies of application software and application source code must be stored in a fire-rated container or separately (offsite) from the operational or development environments.
PM-14CCI-003004The organization implements a process for ensuring that organizational plans for conducting security testing associated with organizational information systems continue to be executed in a timely manner.The organization being inspected/assessed documents and implements a process for ensuring that organizational plans for conducting security testing associated with organizational information systems continue to be executed in a timely manner.
The organization must maintain records of execution.The organization conducting the inspection/assessment obtains and examines the documented process as well as records of execution to ensure the organization being inspected/assessed implements a process for ensuring that organizational plans for conducting security testing associated with organizational information systems continue to be executed in a timely manner.APSC-DV-003130Discussion: Without test plans and procedures for application releases or updates, unexpected results may occur which could lead to a denial of service to the application or components. This requirement is meant to apply to developers or organizations that are doing development work when releasing a version update or a patch to the application.
SA-10 (1)CCI-000698The organization requires the developer of the information system, system component, or information system service to enable integrity verification of software and firmware components.The organization being inspected/assessed requires within contracts/agreements that the developer of the information system, system component, or information system service enable integrity verification of software and firmware components.

The organization being inspected/assessed requires the developer to enable integrity verification of software and firmware that may include:

1. Stipulating and monitoring logical delivery of products and services, requiring downloading from approved, verification-enhanced sites;

2. Encrypting elements (software, software patches, etc.) and supply chain process data in transit (motion) and at rest throughout delivery;

3. Requiring suppliers to provide their elements “secure by default”, so that additional configuration is required to make the element insecure;

4. Implementing software designs using programming languages and tools that reduce the likelihood of weaknesses;

5. Implementing cryptographic hash verification; and

6. Establishing performance and sub-element baseline for the system and system elements to help detect unauthorized tampering/modification during repairs/refurbishing.

The organization conducting the inspection/assessment obtains and examines the contracts/agreements to ensure the organization being inspected/assessed requires that the developer of the information system, system component, or information system service enable integrity verification of software and firmware components.APSC-DV-003140Discussion: When application code and binaries are transferred from one environment to another, there is the potential for malware to be introduced into either the application code or even the application binaries themselves. Care must be taken to ensure that application code and binaries are validated for integrity prior to deployment into a production environment. To ensure file integrity, application files and/or application packages are cryptographically hashed using a strong hashing algorithm. Comparing hashes after transferring the files makes it possible to detect changes in files that could indicate potential integrity issues with the application. Currently, SHA256 is the DoD approved standard for cryptographic hash functions. DoD application developers must use SHA256 when creating cryptographic hashes. Prior to release of the application for deployment into a DoD environment, the application must be validated for integrity to ensure no tampering of source code or binaries has occurred.
SA-11 (2)CCI-003182The organization requires the developer of the information system, system component, or information system service to perform testing/evaluation of the as-built system, component, or service subsequent to threat and vulnerability analysis.APSC-DV-003150Discussion: If there is no person designated to test for security flaws, vulnerabilities can potentially be missed during testing. This requirement is meant to apply to developers or organizations that are doing development work.
SA-11 (4)CCI-003187The organization requires the developer of the information system, system component, or information system service to perform a manual code review of organization-defined specific code using organization defined processes, procedures, and/or techniques.APSC-DV-003170Discussion: A code review is a systematic evaluation of computer source code conducted for the purposes of identifying and remediating the security flaws in the software. This requirement is meant to apply to developers or organizations that are doing application development work and have the responsibility for maintaining the application source code. Examples of security flaws include but are not limited to:

• format string exploits

• memory leaks

• buffer overflows

• race conditions

• sql injection

• dead/unused/commented code

• input validation exploits The code review is conducted during the application development phase, this allows discovered security issues to be corrected prior to release. Code reviews performed after the development phase must eventually go back to development for correction so conducting the code review during development is the logical and preferred action. Automated code review tools are to be used whenever reviewing application source code. These tools are often incorporated into Integrated Development Environments (IDE) so code reviews can be conducted during all stages of the development life cycle. Periodically reviewing code during the development phase makes transition to a production environment easier as flaws are continually identified and addressed during the development phase rather than en masse at the end of the development effort. Code review processes and the tools used to conduct the code review analysis will vary depending upon application architecture and the development languages utilized. In addition to automated testing, manual code reviews may also be used to validate or augment automated code review results. Larger projects will have a large code base and will require the use of automated code review tools in order to achieve complete code review coverage. A manual code review may consist of a peer review wherein other programmers on the team manually examine source code and automated code review results for known flaws that introduce security bugs into the application. As with any testing, there is no single best approach and the tests must be tailored to the application architecture. Use of automated tools along with manual review of code and testing results is considered a best practice when conducting code reviews. This method is the most likely way to ensure the maximum number of errors are caught and addressed prior to implementing the application in a production environment.

SA-11 (4)CCI-003188The organization defines the specific code that requires the developer of the information system, system component, or information system service to perform a manual code review against using organization-defined process, procedures, and/or techniques.APSC-DV-003180Discussion: This requirement is meant to apply to developers or organizations that are doing application development work. Code coverage statistics describes the overall functionality provided by the application and how much of the source code has been tested during the release cycle. To avoid the potential for testing the same pieces of code over and over again, code coverage statistics are used to track which aspects or modules of the application are tested. Some applications are so large that it is not feasible to test every last bit of the application code on one release cycle. In those instances, it is acceptable to prioritize and identify the modules that are critical to the applications security posture and test those first. Rolling over to test other modules later as resources permit. E.g., testing functionality that performs authentication and authorization before testing printing capabilities. Application developers should keep statistics that show all of the modules of the application and identify which modules were tested and when. This will help testers to keep track of what has been tested and help to verify all functionality is tested. The developer makes sure that flaws are documented in a defect tracking system. If the application is smaller in nature and all aspects of the application can be tested, the code coverage statistics would be 100%.
SA-11 (8)CCI-003197The organization requires the developer of the information system, system component, or information system service to document the results of the dynamic code analysis.APSC-DV-003190Discussion: This requirement is meant to apply to developers or organizations that are doing application development work. If flaws are not tracked they may possibly be forgotten to be included in a release. Tracking flaws in the configuration management repository will help identify code elements to be changed, as well as the requested change.
SA-11CCI-003178The organization requires the developer of the information system, system component, or information system service to correct flaws identified during security testing/evaluation.The organization being inspected/assessed requires the developer to correct flaws identified during security testing/evaluation and to document and provide evidence that the flaws were corrected.
The organization conducting the inspection/assessment obtains and examines the contracts/agreements to ensure the organization being inspected/assessed requires that the developer of the information system, system component, or information system service correct flaws identified during security testing/evaluation and provide evidence.APSC-DV-003210Discussion: This requirement is meant to apply to developers or organizations that are doing application development work. Application development efforts include the creation of a project plan to track and organize the development work. If security flaws are not tracked within the project plan, it is possible the flaws will be overlooked and included in a release. Tracking flaws in the project plan will help identify code elements to be changed as well as the requested change.
SA-15CCI-003233The organization requires the developer of the information system, system component, or information system service to follow a documented development process.The organization being inspected/assessed requires within contracts/agreements that the developer of the information system, system component, or information system service to follow a documented development process.The organization conducting the inspection/assessment obtains and examines the contracts/agreements to ensure the organization being inspected/assessed requires that the developer of the information system, system component, or information system service to follow a documented development process.APSC-DV-003215Discussion: Coding standards are guidelines established by the development team or individual developers that recommend programming style, practices and methods. The coding standards employed will vary based upon the programming language that is being used to develop the application and the development team. Coding standards often cover the use of white space characters, variable naming conventions, function naming conventions, and comment styles. Implementing coding standards provides many benefits to the development process. These benefits include code readability, coding consistency among both individual and teams of developers as well as ease of code integration. The following are examples of what will typically be in a coding standards document. This list is an example of what one can expect to find in typical coding standard documents and is not a comprehensive list:

• Indent style conventions

• Naming conventions

• Line length conventions

• Comment conventions

• Programming best practices

• Programming style conventions Coding standards allow developers to quickly adapt to code which has been developed by various members of a development team. Coding standards are useful in the code review process as well as in situations where a team member leaves and duties must then be assigned to another team member. Code conforming to a standard format is easier to read, especially if someone other than the original developer is examining the code. In addition, formatted code can be debugged and corrected faster than unformatted code. Introducing coding standards can help increase the consistency, reliability, and security of the application by ensuring common programming structures and tasks are handled by similar methods, as well as, reducing the occurrence of common logic errors.

SA-15 CCI-003233 The organization requires the developer of the information system, system component, or information system service to follow a documented development process. The organization being inspected/assessed requires within contracts/agreements that the developer of the information system, system component, or information system service to follow a documented development process. The organization conducting the inspection/assessment obtains and examines the contracts/agreements to ensure the organization being inspected/assessed requires that the developer of the information system, system component, or information system service to follow a documented development process. APSC-DV-003220 Discussion: This requirement is meant to apply to developers or organizations that are doing application development work. The application design document or configuration guide includes configuration settings, recommendations and best practices that pertain to the secure deployment of the application. It also contains the detailed functional architecture as well as any changes to the application architecture corresponding to a new version release and must be documented to ensure all risks are assessed and mitigated to the maximum extent practical.

Failure to do so may result in unexposed risk, and failure to mitigate the risk leading to failure or compromise of the system.

SA-15 (4) CCI-003256 The organization requires that developers perform threat modeling for the information system at organization-defined breadth/depth. The organization being inspected/assessed requires within contracts/agreements that the developers perform threat modeling for the information system at the breadth/depth defined in SA-15 (4), CCI 3258. The organization conducting the inspection/assessment obtains and examines the contracts/agreements to ensure the organization being inspected/assessed requires that the developers perform threat modeling for the information system at the breadth/depth defined in SA-15 (4), CCI 3258. APSC-DV-003230 Discussion: Threat modeling is an approach for analyzing the security of an application. It is a structured approach that enables you to identify, quantify, and address the security risks associated with an application. Threat modeling is not an approach to reviewing code, but it does complement the security code review process. Threat modeling can optimize application security by identifying objectives and vulnerabilities, and then defining countermeasures to prevent, or mitigate the effects of, threats to the system. The lack of threat modeling will potentially leave unidentified threats for attackers to utilize to gain access to the application. To execute a threat model you should do the following:

• Decompose the Application. The first step in the threat modeling process is gaining an understanding of the application and how it interacts with external entities. This includes identifying languages used by the application. It also includes identifying network connections and the means utilized to access the application.

• Determine and rank threats. Use a threat categorization methodology to understand the different threat categories. The goal of the threat categorization is to help identify threats both from the attacker perspective and the defensive perspective.

• Determine countermeasures and mitigation. A lack of protection against a threat might indicate a vulnerability whose risk exposure could be mitigated with the implementation of a countermeasure.

SA-15 (5)CCI-003272The organization requires the developer of the information system, system component, or information system service to reduce attack surfaces to organization-defined thresholds.APSC-DV-003235Discussion: Error handling is the failure to check the return values of functions or catch top level exceptions within a program. Improper error handling in an application can lead to an application failure or possibly result in the application entering an insecure state. The primary way to detect error handling vulnerabilities is to perform code reviews. If a manual code review cannot be performed, static code analysis tools should be employed in conjunction with tests to help force the error conditions by specifying invalid input (such as fuzzed data and malformed filenames) and by using different accounts to run the application. These tests may give indications of vulnerability, but they are not comprehensive. In order to minimize error handling errors, ensure proper return code and exception handling is implemented throughout the application.
AT-3 (2)CCI-001567The organization provides organization-defined personnel or roles with refresher training in the employment and operation of physical security controls in accordance with the organization-defined frequency.The organization being inspected/assessed:

1. Identifies and documents physical security controls that require training.

2. Identifies personnel defined in AT-3 (2), CCI 2051

3. Ensures designated personnel receive this training annually

4. Maintains and monitors records of personnel who have received this training.

DoD has defined the frequency as annual. The organization conducting the inspection/assessment obtains and examines:

1. Documentation of physical security controls that require training.

2. Documented list of personnel defined in AT-3 (2), CCI 2051

3. Ensures identified personnel have received training annually.

DoD has defined the frequency as annual. APSC-DV-003400 Discussion: Many…

This is the start of the file's text. The full file is on GovTribe.

File details come from the government source that posted it. Updated .