That's when I discussed some basics around application security from CIS Control 16. The Center for Internet Security Controls are 18 critical information security controls that all organizations and information security professionals should be familiar with and implement to protect their networks and data. The document contains high level information that executives can understand and also has specific details about tools and procedures that technical staff to run with. I recommend it to all my clients for information security guidance.
Warning Sign at Colyer Lake in Central PA |
The Overview for Control 16 - Application Software Security is - Manage the security life cycle of in-house developed, hosted, or acquired software to prevent, detect, and remediate security weaknesses before they can impact the enterprise.
16.1 Establish and Maintain a Secure Application Development Process16.2 Establish and Maintain a Process to Accept and Address Software Vulnerabilities
16.3 Perform Root Cause Analysis on Security Vulnerabilities Applications
16.4 Establish and Manage an Inventory of Third-Party Software Components
16.5 Use Up-to-Date and Trusted Third-Party Software Components
16.6 Establish and Maintain a Severity Rating System and Process for Application Vulnerabilities
16.7 Use Standard Hardening Configuration Templates for Application Infrastructure
16.8 Separate Production and Non-Production Systems
16.9 Train Developers in Application Security Concepts and Secure Coding
16.10 Train Developers in Application Security Concepts and Secure Coding
16.11 Leverage Vetted Modules or Services for Application Security Components
16.12 Implement Code-Level Security Checks
16.13 Conduct Application Penetration Testing
16.14 Conduct Threat Modeling
Let's discuss some of the above controls. The very first one, Control 16.1 - Establish and Maintain a Secure Application Development Process lays the groundwork for the entire control and the safeguards that follow it. Document a policy and implement procedures at your organization that establishes development requirements - such as restricting access to code repositories; code reviews by a peer or a team lead before code advances in the code pipeline; DAST scans of code and libraries to identify vulnerabilities; SAST scans of applications. QA testing and user acceptance testing should be defined. The document should also state how new versions of code are released. It is an automated process after code has passed a series of manual and automated testing or is there a team that must sign off on release of the new version.
The security standard the company follows should also be listed, such as OWASP Top 10 with at least annual refresher training for developers on common application security concerns.
Control 16.10 - Apply Secure Design Principles in Application Architectures is so important to get right as it's difficult to correct if you get it wrong. It's important to design your application and supporting infrastructure to minimize the attack surface. Some companies put their servers and databases directly on the internet facing the public. The companies I've worked with that do have good controls in place generally use Cloudflare's DDOS and WAF protection to filter all traffic before it reaches AWS load balancers. This protects their systems, putting web, application and other servers on private IPs, not directly accessible to the internet. The company also benefits by freeing up resources instead of implementing complex and expensive security controls that they can obtain from Cloudflare or other vendors.
No comments:
Post a Comment