I. INTRODUCTION
The OCC has issued a bulletin reminding national banks and their technology service providers that application security is an important component of their information security program. All applications, whether internally developed, vendor-acquired, or contracted for, should be subject to appropriate security risk assessment and mitigation processes. Vulnerabilities in applications (see Appendix A) increase operational and reputation risk as unplanned or unknown weaknesses may compromise the confidentiality, availability, and integrity of data. Although this guidance is focused on the risks and risk management techniques associated with Web-based applications, the principles are applicable to all types of software.
Banks rely on applications to ensure accurate, timely, and confidential processing of data. Vulnerabilities, particularly those associated with Web-based applications, are increasingly the focus of attacks from external and internal sources for the purposes of committing identity theft and other types of fraud.
Web-based applications are most frequently associated with Internet banking, cash management, and brokerage accounts; however, they also facilitate many other Web-accessible services. Web-based applications are being targeted for several reasons including: (a) easy Internet access by all: noncustomer, customer, employees, servicers, and vendors; (b) traditional network defenses (i.e., network firewalls, intrusion detection) may not detect or prohibit unauthorized activity; (c) a breached application may provide perpetrators unauthorized access to sensitive data that supports the application (e.g., customer databases, financial records) and; (d) known vulnerabilities due to weaknesses in application development and assurance processes.
Some application manufacturers mitigate application security risks by incorporating security into their development and assurance processes. Those processes include well-defined recurring action steps that identify and monitor vulnerabilities, notify users of vulnerabilities, and provide remediation or corrective measures. Applications developed internally, purchased, or contracted for may not be subject to similar risk mitigation measures and, therefore, may expose a bank to increased risks.
The FFIEC Information Technology Examination Handbook Information Security and Development and Acquisition booklets provide basic guidance regarding application security. This bulletin expands on existing guidance and emphasizes the need for comprehensive application development and assurance processes that integrate security for all applications.
II. RISK MANAGEMENT CONSIDERATIONS
As part of their information security program, national banks should ensure that all applications are developed and maintained in a manner that appropriately addresses risks to the confidentiality, availability, and integrity of data. National banks should include application security in their risk assessments, including those required by Interagency Guidelines Establishing Standards for Safeguarding Customer Information. The scope of a bank’s application security efforts may vary depending on the size and complexity of the bank and the nature of its software applications.
Key factors that management should consider in their risk assessment of an application include:
Banks that purchase applications typically rely upon the vendors to provide secure applications. However, bank management remains responsible for ensuring that the application meets the bank’s security requirements at acquisition and thereafter. As needed for purchased software, banks should expand their vendor management program to include application security considerations in their request for information (RFI) or request for proposal (RFP) process. An attestation from the vendor that their software development process follows secure development practices and is periodically tested may suffice for some applications. For applications that present higher risks, banks may require vendor evidence of adherence to sound processes and validation through third-party testing and/or audits. All applications purchased should be supported by appropriate vulnerability identification and remediation processes, including appropriate vendor support. Additionally, banks should ensure that their ongoing testing process (e.g., penetration, vulnerability assessment) includes purchased and contracted applications. Appendix B contains considerations when evaluating applications for purchase.
To ensure maximum effectiveness, banks that develop applications in-house should consider following an enterprise-wide effort that is coordinated across business lines and includes the following elements:
National banks are encouraged to leverage upon available resources to assist in risk identification and improve their application security practices. Software tools, industry resources, specific certifications, and education courses are available to provide assistance to enhance the bank’s application development architecture; e.g., software development lifecycle and assurance processes. These resources are available through organizations such as OWASP and CERT. The Department of Homeland Security as well the National Institute of Standards and Technology (NIST) SP 800-64 provide extensive resources to assist in applications security efforts.
Additionally, management should establish a mechanism to receive and respond appropriately to vulnerability reports from public and private sources, including reports from FS/ISAC, US-CERT, and any other groups that detect, analyze, and report vulnerabilities.
Appendix A
Common Vulnerabilities in Web-Based Applications18
Cross Site Scripting (XSS)
XSS flaws occur whenever an application takes user supplied data and sends it to a web browser without first validating or encoding that content. XSS allows attackers to execute script in the victim's browser that can hijack user sessions, deface web sites, possibly introduce worms, etc.
Injection Flaws
Injection flaws, particularly Structured Query Language (SQL) injection, are common in web applications. Injection occurs when user-supplied data is sent to an interpreter as part of a command or query. The attacker’s hostile data tricks the interpreter into executing unintended commands or changing data.
Malicious File Execution
Code vulnerable to remote file inclusion allows attackers to include hostile code and data, resulting in devastating attacks, such as total server compromise. Malicious file execution attacks affect PHP, XML and any framework which accepts filenames or files from users.
Insecure Direct Object Reference
A direct object reference occurs when a developer exposes a reference to an internal implementation object, such as a file, directory, database record, or key, as a URL or form parameter. Attackers can manipulate those references to access other objects without authorization.
Cross Site Request Forgery (CSRF)
A CSRF attack forces a logged-on victim’s browser to send a pre-authenticated request to a vulnerable web application, which then forces the victim’s browser to perform a hostile action to the benefit of the attacker. CSRF can be as powerful as the web application that it attacks.
Information Leakage and Improper Error Handling
Applications can unintentionally leak information about their configuration, internal workings, or violate privacy through a variety of application problems. Attackers use this weakness to steal sensitive data, or conduct more serious attacks.
Broken Authentication and Session Management
Account credentials and session tokens are often not properly protected. Attackers compromise passwords, keys, or authentication tokens to assume other users’ identities.
Insecure Cryptographic Storage
Web applications rarely use cryptographic functions properly to protect data and credentials. Attackers use weakly protected data to conduct identity theft and other crimes, such as credit card fraud.
Insecure Communications
Applications frequently fail to encrypt network traffic when it is necessary to protect sensitive communications.
Failure to Restrict URL Access
Frequently, an application only protects sensitive functionality by preventing the display of links or URLs to unauthorized users. Attackers can use this weakness to access and perform unauthorized operations by accessing those URLs directly.
18Source: OWASP https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project.
Appendix B
Considerations for Request for Information (RFI) and Request for Proposal (RFP) when Purchasing Application Software/Services