Standard: Web Application Development

Similar documents
Standard: Application Service Provider Security Requirements

Kenna Platform Security. A technical overview of the comprehensive security measures Kenna uses to protect your data

FINAL DoIT v.4 PAYMENT CARD INDUSTRY DATA SECURITY STANDARDS APPLICATION DEVELOPMENT AND MAINTENANCE PROCEDURES

3. Broken Account and Session Management. 4. Cross-Site Scripting (XSS) Flaws. Web browsers execute code sent from websites. Account Management

Passing PCI Compliance How to Address the Application Security Mandates

Standard: Network Security

Rational AppScan & Ounce Products

05.0 Application Development

Information Supplement: Requirement 6.6 Code Reviews and Application Firewalls Clarified

How To Protect A Web Application From Attack From A Trusted Environment

Criteria for web application security check. Version

elearning for Secure Application Development

CYBERSECURITY TESTING & CERTIFICATION SERVICE TERMS

WHITE PAPER. FortiWeb and the OWASP Top 10 Mitigating the most dangerous application security threats

TECHNICAL AUDITS FOR CERTIFYING EUROPEAN CITIZEN COLLECTION SYSTEMS

FINAL DoIT v.8 APPLICATION SECURITY PROCEDURE

Columbia University Web Security Standards and Practices. Objective and Scope

How to achieve PCI DSS Compliance with Checkmarx Source Code Analysis

A Decision Maker s Guide to Securing an IT Infrastructure

Network Test Labs (NTL) Software Testing Services for igaming

NETWORK AND CERTIFICATE SYSTEM SECURITY REQUIREMENTS

Visa U.S.A Cardholder Information Security Program (CISP) Payment Application Best Practices

SAST, DAST and Vulnerability Assessments, = 4

Web App Security Audit Services

Standard: Retention

Larry Wilson Version 1.0 November, University Cyber-security Program Controls Book

Standard: Vulnerability Management and Assessment

Contemporary Web Application Attacks. Ivan Pang Senior Consultant Edvance Limited

Web Plus Security Features and Recommendations

External Vulnerability Assessment. -Technical Summary- ABC ORGANIZATION

ASP.NET MVC Secure Coding 4-Day hands on Course. Course Syllabus

What is Web Security? Motivation

PCI Compliance - A Realistic Approach. Harshul Joshi, CISM, CISA, CISSP Director, Information Technology CBIZ MHM hjoshi@cbiz.com

CITY UNIVERSITY OF HONG KONG. Information System Acquisition, PUBLIC Development and Maintenance Standard

How To Ensure That Your Computer System Is Safe

Web Application Security

Adobe Systems Incorporated

The Importance of Organizing Your SJSU Information Assets

Data Management Policies. Sage ERP Online

Visa Asia Pacific Account Information Security (AIS) Program Payment Application Best Practices (PABP)

Standard: Event Monitoring

Application Security Policy

Security Controls for the Autodesk 360 Managed Services

DIVISION OF INFORMATION SECURITY (DIS)

ArcGIS Server Security Threats & Best Practices David Cordes Michael Young

DFW INTERNATIONAL AIRPORT STANDARD OPERATING PROCEDURE (SOP)

WEB SECURITY CONCERNS THAT WEB VULNERABILITY SCANNING CAN IDENTIFY

Protecting Your Organisation from Targeted Cyber Intrusion

Reducing Application Vulnerabilities by Security Engineering

Standard: and Campus Communication

CSUSB Web Application Security Standard CSUSB, Information Security & Emerging Technologies Office

Last update: February 23, 2004

Where every interaction matters.

Secure Web Application Coding Team Introductory Meeting December 1, :00 2:00PM Bits & Pieces Room, Sansom West Room 306 Agenda

Standard: Patching and Malicious Code Management

ensure prompt restart of critical applications and business activities in a timely manner following an emergency or disaster

WhiteHat Security White Paper. Top 11 PCI DSS 3.0 Changes That Will Affect Your Application Security Program

CYBER TRENDS & INDUSTRY PENETRATION TESTING. Technology Risk Supervision Division Monetary Authority of Singapore

OWASP TOP 10 ILIA

OWASP Top Ten Tools and Tactics

Question Name C 1.1 Do all users and administrators have a unique ID and password? Yes

Application Security Testing

The purpose of this report is to educate our prospective clients about capabilities of Hackers Locked.

Threat Modeling. Categorizing the nature and severity of system vulnerabilities. John B. Dickson, CISSP

Chapter 10. Cloud Security Mechanisms

Approved 12/14/11. FIREWALL POLICY INTERNAL USE ONLY Page 2

Securing Your Web Application against security vulnerabilities. Ong Khai Wei, IT Specialist, Development Tools (Rational) IBM Software Group

Development. Resilient Software. Secure and. Mark S. Merkow Lakshmikanth Raghavan. CRC Press. Taylor& Francis Croup. Taylor St Francis Group,

KEN VAN WYK. Fundamentals of Secure Coding and how to break Software MARCH 19-23, 2007 RESIDENZA DI RIPETTA - VIA DI RIPETTA, 231 ROME (ITALY)

Secure Code Development

S E C U R I T Y A S S E S S M E N T : B o m g a r A p p l i a n c e s

ABC LTD EXTERNAL WEBSITE AND INFRASTRUCTURE IT HEALTH CHECK (ITHC) / PENETRATION TEST

Security Goals Services

AN OVERVIEW OF VULNERABILITY SCANNERS

Designing and Coding Secure Systems

The Top Web Application Attacks: Are you vulnerable?

Standard: Information Security Incident Management

Barracuda Web Site Firewall Ensures PCI DSS Compliance

CONTENTS. PCI DSS Compliance Guide

Columbia University Web Application Security Standards and Practices. Objective and Scope

OWASP AND APPLICATION SECURITY

WebEx Security Overview Security Documentation

Independent Security. Prepared for:

PCI-DSS and Application Security Achieving PCI DSS Compliance with Seeker

MIGRATIONWIZ SECURITY OVERVIEW

A Strategic Approach to Web Application Security The importance of a secure software development lifecycle

Application Layer Encryption: Protecting against Application Logic and Session Theft Attacks. Whitepaper

Nuclear Regulatory Commission Computer Security Office Computer Security Standard

G- Cloud Specialist Cloud Services. Security and Penetration Testing. Overview

Creating Stronger, Safer, Web Facing Code. JPL IT Security Mary Rivera June 17, 2011

Privileged. Account Management. Accounts Discovery, Password Protection & Management. Overview. Privileged. Accounts Discovery

Is Drupal secure? A high-level perspective on web vulnerabilities, Drupal s solutions, and how to maintain site security

Promoting Application Security within Federal Government. AppSec DC November 13, The OWASP Foundation

Secrets of Vulnerability Scanning: Nessus, Nmap and More. Ron Bowes - Researcher, Tenable Network Security

October 10, Report on Web Applications #13-205

Secondary DMZ: DMZ (2)

Web Application Attacks and Countermeasures: Case Studies from Financial Systems

Overview of the Penetration Test Implementation and Service. Peter Kanters

Web Application Security. Vulnerabilities, Weakness and Countermeasures. Massimo Cotelli CISSP. Secure

Transcription:

Information Security Standards Web Application Development Standard IS-WAD Effective Date TBD Email security@sjsu.edu # Version 2.0 Contact Mike Cook Phone 408-924-1705 Standard: Web Application Development Page 1

Executive Summary The Web Application Development Standard defines the requirements and guidelines for protecting web applications as they are developed for all San Jose State University (SJSU) computer and communication system information, with the goal of safeguarding the confidentiality, integrity, and availability of information stored, processed, and transmitted by SJSU. Web applications, in many cases, process sensitive information from backend relational database. This standard of due care will help ensure that web applications are developed with proactive security in mind for handling sensitive university information. This software security lifecycle must be managed for all Web-based technology in-house developed, purchased, and acquired software in order to help prevent, detect, and correct security flaws. A web application is defined as any application that connects to a campus network and/or the Internet and that dynamically accepts user input. This process should incorporate a documented approval process, a documented change management plan, security vulnerability testing, applicable software application testing, and a revision control system Page 2

Revision History Date Action 5/30/2014 Draft sent to Mike 12/8/2014 Reviewed. Content suggestions. Added comments. Hien Huynh Page 3

Table of Contents Executive Summary... 2 Introduction and Purpose... 6 Scope... 6 Standard... 6 Developer Training, Lifecycle, and Program Development... 6 Usage of DHS Build Security In... 6 Learn CWE/SANS Top 25 Most Dangerous Software Errors... 6 Learn Open Web Application Security Project (OWASP) Top 10 Web Application Vulnerabilities... 6 OWASP Top Ten Cheat Sheet... 6 Examine History of Acquired Software... 6 Web Application Software Security... 7 Hardening SQL servers... 7 Session Management using Web Language... 7 Error Checking and Input Validation... 7 White Listing of User Input... 7 Output Sanitization of Errors Displayed... 7 Integrating 3 rd Party software components... 7 Web Application Firewall usage... 7 Separation of Production from Nonproduction... 7 Remove Samples, Comments, and Debug Code from production... 7 Security Testing of Web Applications... 8 Periodic Web Application scanning using automated tools... 8 Manual Web Application Penetration Testing... 8 Static Code Analysis... 8 Discovered Flaws create Feedback Loop for Training and Process improvement... 8 Crystal Box Testing... 8 Cryptography used in Web Applications... 8 Mandatory usage of TLS / SSL for sensitive applications... 8 No self-signed Certificates... 8 Current and Standard digital certificate required... 8 Digital Certificate Validity Period... 8 3 rd Party Web Application Development... 9 Third-Party Software Development... 9 Software Vendors Must Perform Security Tests... 9 General Technical Assurance... 9 Page 4

Specifications for Web Applications Developed In-House... 9 Re-Usability of Software... 9 Security in the Systems Development Life Cycle (SDLC)... 9 Purchasing Information Security Solutions... 9 Use of Evaluated Products... 9 No Secret Credentials in Imbedded in Web Application Systems... 9 Privacy Requirements for all new Web Application Development Specifications... 9 Processing of Input Data in Web Applications...10 Production Input Transactions...10 Input Data Validation and Rejected Item Handling...10 Control of Internal Processing...10 Modification of Production Business Information...10 Software Failure to Properly Operate...10 Software Feedback to User...10 Announcing System Unavailability to Users...10 Tracing Errors and Security Problems to Developers...10 Changes to Sensitive, Critical, or Valuable Information...10 Concealing Customer Account Numbers...11 Credit Card Number Usage...11 Health Information...11 Designing Information Security Controls...11 Errors And Record Manipulations...11 Temporary Files and Storage...11 Message integrity...11 Production System Input Transaction Authorization...11 Rejected or Suspended Input Validation...11 Output data validation...11 Output Data Controls...11 References...12 Page 5

Introduction and Purpose This standard defines the requirements for protecting web applications as they are developed for all San Jose State University (SJSU) computer and communication system information, with the goal of safeguarding the confidentiality, integrity, and availability of information stored, processed, and transmitted by SJSU. Web applications are often exploited as backdoors onto secure networks, and in many cases process sensitive information from backend relational databases. This standard of due care will help ensure that web applications are developed with proactive security in mind for handling sensitive university information. Scope This standard applies to all SJSU State, Self-Fund, and Auxiliary ( campus ) computer systems and facilities, with a target audience of SJSU Information Technology employees and partners. Standard Developer Training, Lifecycle, and Program Development Developers must design security into web applications during the development process rather than after software is released into production. Developers shall be trained and updated on secure coding practices. This software security lifecycle must be managed for all Web-based technology including in-house developed, purchased, and acquired software in order to help prevent, detect, and correct security flaws. Usage of DHS Build Security In Developers must become familiar with the DHS "Build Security In" program for software assurance: https://buildsecurityin.us-cert.gov/ Learn CWE/SANS Top 25 Most Dangerous Software Errors Developers shall study and learn the CWE (Common Weakness & Exposures) and SANS "Top 25 Most Dangerous Software Errors" http://cwe.mitre.org/top25/ Learn Open Web Application Security Project (OWASP) Top 10 Web Application Vulnerabilities Campus developers will study and learn the OWASP Top 10 web application weaknesses in order to help prevent flaws: https://www.owasp.org/index.php/category:owasp_top_ten_project OWASP Top Ten Cheat Sheet Campus developers will use OWASP Top Ten Cheat Sheet as a reference while developing campus in-house web applications: https://www.owasp.org/index.php/owasp_top_ten_cheat_sheet Examine History of Acquired Software For acquired application software, examine the product security process of the vendor (history of vulnerabilities, customer notification, patching/remediation) as part of the overall enterprise risk management process. Page 6

Web Application Software Security Campus web application developers should adhere to secure coding practices and other controls for helping to secure web applications against common vulnerabilities, threats, and attacks such as SQL Injection and Cross-Site Scripting. Hardening SQL servers For web applications that connect to a backend relational DB, hardening templates should be utilized to secure the Database server(s). Session Management using Web Language Session management with tokens, cookies, and alternatives should use a commonly accepted and supported web language. Developers must not invent their own session management algorithm or implementation that is used in production web application code. Error Checking and Input Validation For in-house developed web applications, developers must ensure that explicit error checking is performed and documented for all input, including for size, data type, and acceptable ranges or formats. White Listing of User Input For each functional web application, developers should rely on white listing on input forms of allowing known good versus filtering out known bad (black listing) based on signatures wherever possible. Output Sanitization of Errors Displayed Web application developers must not display system error messages to end users. Integrating 3 rd Party software components For any acquired web application software components that are acquired or otherwise downloaded and integrated into the custom web application developed by the campus developers: the version running must still be supported by the vendor, and the version must be updated to the latest. Web Application Firewall usage Web Application Firewalls should be used, where necessary, to protect campus web applications against common attacks, including SQL injection and command injection. If the traffic is encrypted, the WAF device must sit behind the encryption or be capable of decrypting in order to inspect the traffic. Separation of Production from Nonproduction Campus IT must ensure that separate environments for production and nonproduction web applications are maintained. Developers should not typically have unmonitored access to production environments. Web servers shall be physically segmented into DMZ subnets. Relational database backends shall not reside on subnets with servers which are accessible directly from the internet. Remove Samples, Comments, and Debug Code from production For in-house developed web applications, developers must ensure that development artifacts such as sample data and scripts, unused libraries, components, debug code, or comments are not included in the deployed production web application. Page 7

Security Testing of Web Applications Approved web application security assessments and penetration testing, using remote scanners as well as manual methods are required prior to releasing production web applications. The lessons learned from discovered weaknesses should serve as a feedback loop to developer training, to improve awareness as well as the training program content. Periodic Web Application scanning using automated tools For any web application processing sensitive level 1 or level 2 information for University users: in-house developed web applications should be tested using automated remote web application scanners prior to deployment, whenever updates are made to the application, and on a periodic basis. Manual Web Application Penetration Testing For any web application processing sensitive level 1 or level 2 information for University users: the selected web applications should undergo a web application penetration test on a yearly basis. Security testing will include manual testing of vulnerabilities related to business logic flaws, which cannot be identified by an automated scanner. Static Code Analysis In-house developed web applications, where applicable, must be tested prior to deployment using automated static code analysis tools, looking for input validation and output encoding routines of web application code. Discovered Flaws create Feedback Loop for Training and Process improvement Any discovered web application weaknesses during security testing should help create a feedback loop into a process to improve security training, SDLC, and developer awareness for secure coding practices. Any discovered weaknesses should be documented to be used for process and developer training improvements. Crystal Box Testing For any web applications that process sensitive data: Security testing must include testing of two sample credentials at each different authorization/permission level of the web application. Cryptography used in Web Applications Proper industry encryption ciphers and algorithms standard must be used in web applications in order to safeguard sensitive data. Mandatory usage of TLS / SSL for sensitive applications Web applications developed in order to process Level 1 or Level 2 information must use TLS / SSL encryption No self-signed Certificates Self-signed certificates must not be used in any production web application handling sensitive level 1 or level 2 information including usernames and passwords. Current and Standard digital certificate required A current digital certificate is required for every web application handling SJSU business to which customers, prospects, and others may connect. Digital Certificate Validity Period The validity period for digital certificates issued by SJSU must never be longer than three years. Page 8

3 rd Party Web Application Development Outsourced web application development should be approved, supervised, and monitored by the university. Third party web developers producing code for SJSU, must follow the procedures and requirements as if developed in-house. Third-Party Software Development All third parties who develop custom web applications on behalf of SJSU must be bound by a contract approved by the Information Security Office. This contract, at a minimum, must include a clear and explicit definition of property rights, licensing arrangements, functional requirements, security measures, escrow arrangements, auditing rights, and testing processes. Software Vendors Must Perform Security Tests SJSU does not purchase software from vendors who have not passed a series of security checks defined by the Information Security Office regardless of procurement mechanism (state procurement, ProCard, Auxiliary procurement). General Technical Assurance Specifications for Web Applications Developed In-House All software developed by in-house staff, and intended to process sensitive, valuable, or critical information, must have a written formal specification. This specification must be part of an agreement between the involved Information Owner(s) and the system developer(s). This statement must be drafted and approved prior to the time when programming efforts begin. Re-Usability of Software All in-house development projects, with a budget over $100,000, must have as a secondary goal the development of reliable modular software that can be entered into a shared software repository. Security in the Systems Development Life Cycle (SDLC) For all business web application systems, systems designers and developers must consider security from the beginning of the systems design process through conversion to a production system. Any code changes made to the web application that are outside of the original proposal ought to be documented, reviewed, and approved. Purchasing Information Security Solutions SJSU must purchase commercially-available information security solutions rather than build the solutions in-house, unless the cost-effectiveness of an in-house solution has been clearly analyzed, documented, and approved by the Information Security Office. Use of Evaluated Products If all essential functional requirements can otherwise be met, an information systems security product which has been evaluated by a government agency is preferred and must be used rather than a product which has not been evaluated. No Secret Credentials in Imbedded in Web Application Systems Campus developers must not embed any hardcoded authentication credentials (secret usernames and passwords) in production web applications. Privacy Requirements for all new Web Application Development Specifications All new campus web applications developed internally or via third parties must include data privacy specifications within the formal requirements definition. Page 9

Processing of Input Data in Web Applications Data input to web applications should be validated and sanitized to ensure that this data is correct and appropriate. User input should be considered unsafe, and the application should sanitize user supplied input before passing the data to the next layer of business logic. Additional controls may be required for systems that process, or have an impact on, sensitive, valuable or critical information. Such controls should be determined on the basis of security requirements and risk assessment. Production Input Transactions Each input transaction submitted to a web application must be assigned a unique sequence number or identifier. Input Data Validation and Rejected Item Handling All transactions to be input to a multi-user production computer system must be subjected to reasonableness checks, edit checks, or validation checks, and transactions that fail such checks must either be rejected with a notification of the rejection sent to the submitter, corrected and resubmitted, or suspended pending further investigation. Control of Internal Processing Control Validation checks should be incorporated into web applications to detect any corruption of information through processing errors or deliberate acts. Modification of Production Business Information System privileges must be established and maintained so that all system users are prevented from modifying production data in an unrestricted manner. Software Failure to Properly Operate Whenever web applications developed in-house fails to produce the expected results, it must always provide either an error message or some other indication of failure, one or both of which must be presented to the user. Software Feedback to User Whenever web applications developed in-house receives input from a user, feedback must be provided indicating whether the request was performed. Announcing System Unavailability to Users If a web application is unavailable but still running, it must announce this fact to users before a login process begins. Tracing Errors and Security Problems to Developers All complaints about software errors, omissions, and security problems that are attributable to web application software developed in-house must be traced back to the designers, programmers, and other development staff involved. Changes to Sensitive, Critical, or Valuable Information Transactions affecting sensitive, critical, or valuable information must be processed only if the originating individual or system is authorized to submit such transactions. Page 10

Concealing Customer Account Numbers The account numbers appearing on computer-generated receipts provided to customers must be partially-concealed or truncated wherever possible. Credit Card Number Usage SJSU or auxiliary employees must not develop web applications which collect, transmit, or store full 16-digit credit card numbers, expiration dates or security codes. Credit card numbers must not be used for customer identification or any other purpose. Health Information SJSU or auxiliary employees must not develop web applications which collect, transmit, or store medical records. Designing Information Security Controls When designing information security controls, workers must use large margins of error and large time horizons. Errors And Record Manipulations SJSU production web applications must be built so that no single person can make an error or manipulate the records without such events being detected by some other person during the routine execution of that other person s duties. Temporary Files and Storage Temporary files, and temporary storage locations within the memory of general-purpose computers, must be overwritten when the programmed process that created them completes its work. Message integrity Requirements for ensuring authenticity and protecting message integrity in applications should be identified, and appropriate controls identified and implemented. Production System Input Transaction Authorization Methods must be in place to ensure that all input to production web applications that has been submitted for processing has been properly authorized. Rejected or Suspended Input Validation Input transactions that are corrected for resubmission, or that are suspended and later approved for resubmission, must be subjected to the same validation procedures that original input transactions receive. Output data validation Data output from a web application should be validated to ensure that the processing of stored information is correct and appropriate to the circumstances. Output Data Controls Automated and manual controls must be established to validate the correctness and accuracy of all sensitive and critical information which has been processed by SJSU production application systems. Page 11

References U.S. Department of Homeland Security (DHS): Build Security In Common Weakness Enumeration (CWE): CWE and SANS Top 25 Most Dangerous Software Errors" Open Web Application Security Project (OWASP): OWASP Top Ten Project Open Web Application Security Project (OWASP): OWASP Top Ten Cheat Sheet Page 12