What You Will Learn
The Cloud Moves Fast. Automate to Keep Up.
Organizations are moving to the cloud to enable digital transformation and reap the benefits of cloud computing. However, security teams struggle to understand the DevOps toolchain and how to introduce security controls in their automated pipelines responsible for delivering changes to cloud-based systems. Without effective pipeline security controls, security teams lose visibility into the changes released into production environments. Upfront peer code reviews and security approvals may not occur for change approval and audit requirements. Missing infrastructure and application scanning can allow attackers to find an entry point and compromise the system. Cloud security misconfigurations may publicly expose sensitive data or introduce new data exfiltration paths.
Security teams can help organizations prevent these issues using DevOps tooling and cloud-first best practices. SEC540 provides development, operations, and security professionals with a deep understanding of and hands-on experience with the DevOps methodology used to build and deliver cloud infrastructure and software. Students learn how to attack and then harden the entire DevOps workflow, from version control to continuous integration and running cloud workloads. Each step of the way, students explore the security controls, configuration, and tools required to improve the reliability, integrity, and security of on-premise and cloud-hosted systems.
SEC540 goes well beyond traditional lectures and immerses students in hands-on application of techniques during each section of the course. Each lab includes a step-by-step guide to learning and applying hands-on techniques, as well as a "no hints" approach for students who want to stretch their skills and see how far they can get without following the guide. This allows students, regardless of background, to choose the level of difficulty they feel is best suited for them- aalways with a frustration-free fallback path.
SEC540 also offers students an opportunity to participate in CloudWars Bonus Challenges each day, providing more hands-on experience with the cloud and DevSecOps toolchain.
SEC540 Will Prepare You To:
Understand the Core Principles and Patterns behind DevOps
- Recognize how DevOps works and identify keys to success
Understand the DevSecOps Methodology and Workflow
- Threat model and secure your build and deployment environment
- Secure DevOps tools and workflows
- Conduct effective risk assessments and threat modeling in a rapidly changing environment
- Design and write automated security tests and checks in CI/CD
- Understand the strengths and weaknesses of different automated testing approaches in Continuous Delivery
- Inventory and patch your software dependencies
Integrate Security into Production Operations
- Automate configuration management using Infrastructure as Code
- Secure container technologies (such as Docker and Kubernetes)
- Build continuous monitoring feedback loops from production to engineering
- Securely manage secrets for Continuous Integration servers and applications
- Automate compliance and security policy scanning
Move Your DevOps Workloads to the Cloud
- Understand how to automate cloud architecture components
- Use CloudFormation and Terraform to create Infrastructure as Code
- Build CI/CD pipelines using Jenkins, CodePipeline, and Azure DevOps
- Wire security scanning into Jenkins, CodePipeline, and Azure DevOps workflows
- Containerize applications with Elastic Container Service and Azure Kubernetes Service
- Integrate cloud logging and metrics with CloudWatch
- Create Slack alerts from CloudWatch metrics
- Manage secrets with Vault, KMS, and the SSM Parameter store
Consume Cloud Services to Secure Cloud Applications
- Protect static content with CloudFront Signatures
- Leverage Elastic Container Service for blue/green deployments
- Secure REST APIs with API Gateway
- Implement an API Gateway custom authorization Lambda function
- Deploy the AWS Web Application Firewall and build custom WAF rules
- Perform continuous compliance scans with CloudMapper
- Enforce cloud configuration policies with Cloud Custodian
NOTICE TO STUDENTS
- Please plan to arrive 30 minutes early before your first session for lab preparation and set-up (though obtaining your cloud account(s) should happen PRIOR TO this.) During this time, students can confirm that their cloud accounts are properly set up, ensure laptops have virtualization enabled, copy the lab files, and start the Linux virtual machine. For live classes (online or in-person), the instructor will be available to assist students with laptop prep and set-up 30 minutes prior to the course start time. The lecture will begin at the scheduled course start time.
- Similar to providing hardware and software, students are required to provide their own AWS and Azure cloud environments. Your ability to execute the hands-on exercises will be delayed if you wait to set up the AWS account during a live class. Review the Laptop Requirements below for details.
The SEC540 lab environment simulates a real-world DevOps environment, with more than 10 automated pipelines responsible for building cloud infrastructure, automating gold image creation, orchestrating containerized workloads, executing security scanning, and enforcing compliance standards. Students are challenged to sharpen their technical skills and automate more than 20 security-focused challenges using a variety of command line tools, programming languages, and markup templates. For advanced students, 2 hours of CloudWars bonus labs are available during extended hours each day.
WHAT YOU WILL RECEIVE
- Printed and electronic courseware
- ISO containing the course Virtual Machine (VM)
- Course VM containing a pre-built DevOps CI/CD toolchain, Cloud Security, and Secure DevOps lab exercises
- CloudFormation and Terraform code to deploy AWS and Azure infrastructure
- A VM-hosted wiki and an electronic lab workbook for completing the lab exercises
- Ability to use the Infrastructure as Code (IaC) and course VM indefinitely to continue your learning after the course ends
Posters, Cheat Sheets, and Lists
- Cloud Security and DevOps Best Practices
- Fix Security Issues Left of Prod
- CWE/SANS Top 25 Most Dangerous Software Errors
- Security Web Application Technologies (SWAT) Checklist
- Extending DevSecOps Security Controls into the Cloud: A SANS Survey, October 2020
- Winning in the Dark: Defending Serverless Infrastructure in the Cloud, June 2020
- Attacking and Defending Cloud Metadata Services, October 2019
- Cloud Security and DevOps Automation: Keys for Modern Security Success, April 2019
- Continuous Security: Monitoring & Active Defense in the Cloud, August 2018
See a complete list of Cloud Security tools here, all of which are applicable to SEC540.
WHAT TO TAKE NEXT
Syllabus (38 CPEs)
SEC540 starts by introducing DevOps practices, principles, and tools by attacking a vulnerable Version Control and Continuous Integration System configuration. Students gain an in-depth understanding of how the toolchain works, the risks these systems pose, and identify key weaknesses that could compromise the workflow. Next, well examine the security features available in various Continuous Integration (CI) and Continuous Delivery (CD) systems, such as Jenkins, GitHub, GitLab, Azure DevOps, and AWS CodePipeline, and then start hardening the environment. After automating various code analysis tools and discovering insecurely stored secrets, students will focus on storing sensitive data in secrets management solutions such as HashiCorp Vault, AWS Secrets Manager, and Azure Key Vault.
- Attacking the DevOps Toolchain
- Version Control Security
- Automating Static Analysis
- Protecting Secrets with Vault
- CloudWars (Section 1): Cloud & DevOps Security Bonus Challenges
DevOps and Security Challenges
- GitHub Actions
- GitLab CI/CD
Securing DevOps Workflows
Pre-Commit Security Controls
- Rapid Risk Assessment
- Git Hook Security
- Code Editor Extensions
- Branch Protections
- Peer Reviews
Commit Security Controls
- Static Analysis Security Testing
- Component Analysis
- Azure Key Vault
- AWS SSM Parameter Store
- AWS Secrets Manager
- HashiCorp Vault
Section 2 challenges students to use their DevOps skills to deploy a code-driven cloud infrastructure with AWS CloudFormation and Terraform using more than 150 cloud resources. Students perform a cloud network assessment, identify insecure network configurations, and harden the network traffic flow rules. Moving to cloud virtual machines, students learn how to automate configuration management and build gold images using Ansible, Vagrant, and Packer. To finish the day, students focus on scanning and hardening container images before deploying workloads to the cloud.
- Infrastructure as Code Network Hardening
- Gold Image Creation
- Docker Security Hardening
- Automating Dynamic Analysis
- CloudWars (Section 2): Cloud & DevOps Security Bonus Challenges
Cloud Infrastructure as Code
- AWS Cloud Formation
Configuration Management as Code
- Vagrant and Packer
- Image Scanning
- Container Hardening
Acceptance Stage Security
- Dynamic Application Security Testing
Section 3 prepares students to deploy and run containerized workloads in cloud-native orchestration services such as AWS Elastic Container Service (ECS) and Azure Kubernetes Service (AKS). Students analyze the cloud resources, identify common security misconfigurations, and leverage automation to quickly secure the workloads. The focus then shifts to monitoring workloads, analyzing log files, detecting an attack in real time, and sending alerts to the security team. Students finish the section by examining cloud-native data protection capabilities and encrypting sensitive data.
- Cloud Workload Security Review
- Cloud-Hosted CI/CD Guardrails
- Continuous Security Monitoring
- Data Protection Services
- CloudWars (Section 3): Cloud & DevOps Bonus Challenges
Cloud Deployment & Orchestration
- Azure Pipelines
- AWS CodePipeline
- Cloud Container Orchestration
Cloud Workload Security
- S3 Bucket Misconfiguration
- IAM Privilege Escalation
- TLS Misconfiguration and Hardening
Security in Cloud CI/CD
- Software Composition Analysis
- AWS CodeBuild/CodePipeline Integrations
Continuous Security Monitoring
- AWS CloudWatch Log Insights
- AWS CloudWatch Dashboards
- OS Query
- Automated Slack Alerts
Data Protection Services
- Azure Key Vault
- Azure Service Integration
- AWS KMS
- AWS Service Integration
Section 4 starts with students learning to leverage cloud-native services to patch containerized workloads and secure content delivery networks. From there, the discussion shifts to microservice architectures, best practices, and micro-segmentation with API Gateways. Finally, students learn how to build and deploy Functions as a Service (FaaS), such as Lambda, along with resources to add guardrails to the microservice environment.
- Deploying Security Patches Using Blue/Green Environments
- Securing CloudFront Content with Signed URLs
- Protecting REST Web Services with API Gateway
- Protecting APIs with Lambda and JSON Web Tokens
- CloudWars (Section 4): Cloud & DevOps Security Bonus Challenges
Blue/Green Deployment Options
- Azure Traffic Manager
- Azure Kubernetes Services
- EC2 DNS Routing
- ALB Weighted Target Groups
- Elastic Contained Service Swapping
Secure Content Delivery
- Introduction to Content Delivery Networks
- Restricting Origin Access with Origin Access Identities
- CloudFront Trusted Signing and Access Control with Signed Cookies and URLs
- Configuring Cross-Origin Resource Sharing Security with Bucket Policies
- Microservice Architecture Attack Surface
- Microservice Security
- Authorization with JSON Web Tokens
- Service to Service MTLS
- REST Security
- API Gateway Security
- Overview of Serverless Computing
- Serverless Security Considerations
- Azure Functions/AWS Lambda
- Security Automation with Lambda
Section 5 wraps up the journey with students learning to leverage cloud services to automate security compliance. Starting with cloud-native Web Application Firewall (WAF) services, students enable monitoring, attack detection, and active defense capabilities to catch and block bad actors. The discussion then shifts to working in DevOps and how that affects policy and compliance. Students finish the course learning how to write policy as code for automated cloud compliance and monitoring scanners, such as CloudMapper and Cloud Custodian, and how to detect and correct cloud configuration drift.
- Security Automation with the AWS WAF
- Continuous Cloud Auditing with CloudMapper
- Policy as Code with Cloud Custodian
- NetWars (Section 5): Cloud & DevOps Security Bonus Challenges
Runtime Security Automation
- Insufficient Attack Protection
- Cloud Web Application Firewalls
- Azure FrontDoor
- AWS Security Automations Project
- Blocking Bat Bots with Honeypot Endpoints
- Writing a Custom WAF Rule
- Audit Defense Toolkit
- Cloud Security CIS Benchmarks
Cloud Security Monitoring
- Azure Security Center
- Azure Log Analytics
- AWS Security Hub
- AWS CloudTrail
- Cloud Custodian
GIAC Cloud Security Automation
“The GIAC Cloud Security Automation (GCSA) certification covers cloud services and modern DevSecOps practices that are used to build and deploy systems and applications more securely. The certification shows that you not only know how to speak the language of modern cloud and DevSecOps principles but can put them into practice in an automated and repeatable manner.” - Frank Kim, SEC540 Course Co-Author
Using cloud services with Secure DevOps principles, practices, and tools to build & deliver secure infrastructure and software
Automating Configuration Management, Continuous Integration, Continuous Delivery, and Continuous Monitoring
Use of open-source tools, the Amazon Web Services toolchain, and Azure services
The following are courses or equivalent experiences that are prerequisites for SEC540:
- SANS SEC488: Cloud Security Essentials or hands-on experience using the AWS and Azure Cloud
- Familiarity with Linux command shells and associated commands
- Basic understanding of common application attacks and vulnerabilities (e.g., OWASP Top 10)
- Hands-on experience using version control (git) and continuous integration systems (Jenkins) is recommended but not required
Students taking SEC540 will have the opportunity to learn and use a number of DevOps and cloud tools during the hands-on exercises. Getting a head start on the following tools, technologies, and languages will help students enjoy their lab experience:
- Running basic Git commands (clone, add, commit, push): https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html
- Using GitLab for version control: https://docs.gitlab.com/ee/gitlab-basics/
- Jenkins Getting Started Guide: https://jenkins.io/doc/book/getting-started/
- YAML: https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
- AWS CloudFormation Templates (YAML & JSON): https://aws.amazon.com/cloudformation/aws-cloudformation-templates/
- Terraform HCL: https://www.terraform.io/docs/configuration/syntax.html
- Azure Pipelines: https://docs.microsoft.com/en-us/azure/devops/pipelines
Important!!! Bring your own system configured according to these instructions!!!
A properly configured system is required to fully participate in this course. If you do not carefully read and follow these instructions, you will likely leave the class unsatisfied because you will not be able to participate in hands-on exercises that are essential to this course. Therefore, we strongly urge you to arrive with a system meeting all the requirements specified for the course.
Students must be in full control of the network running the VM. The VM communicates with several external services (AWS, Docker Hub, Terraform, Azure, etc.) over HTTPS, SSH, and other non-standard ports. Running the course virtual machine on a host with a VPN, intercepting proxy, or egress firewall filter may cause connection issues communicating with these services. Students must be able to configure or disable these services for the lab environment to function properly.
!!! IMPORTANT NOTICE !!!
MANDATORY: Students must bring their own AWS and Azure accounts to complete the cloud exercises, see below for more detail.
Please ensure you have done the following before class starts:
- Register for a personal free-tier account.
- Activate your new account.
- Log in to the AWS Console with your root account.
- Browse to the EC2 Service and verify that you see the dashboard (not an activation screen).
- In the top right-hand corner of the page, select one the following supported regions (preferably the region closest to where the course is running or you live - see bulleted list below)
- From the left navigation bar, select "Limits."
- Verify that you have at least 10vCPUs for On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances.
- If your limits are less than 10 vCPUs, please start by creating a new t2.micro instance. Creating a new instance often causes the limits to increase automatically. If your limits do not automatically increase (wait 30 minutes to check again), request an increase to open a ticket with the AWS support team. More details can be found in the AWS EC2 Service Limits documentation.
- U.S. East 1 (Northern Virginia)
- U.S. East 2
- U.S. West 1 (Northern California)
- U.S. West 2 (Oregon)
- E.U. (Ireland)
- Asia Pacific Northeast 1 (Tokyo)
- Asia Pacific Southeast 1 (Singapore)
- Asia Pacific Southeast 2 (Sydney)
Browse to the Azure Portal.
Register for a new account and paid subscription.
BRING YOUR OWN LAPTOP CONFIGURED USING THE FOLLOWING DIRECTIONS:
- A properly configured system is required for each student participating in this course. Before starting your course, carefully read and follow these instructions exactly:
- Host Operating System: Latest version of Windows 10, macOS 10.15.x or later, or Linux that also can install and run VMware virtualization products described below.
- Fully update your host operating system prior to the class to ensure you have the right drivers and patches installed to utilize the latest USB 3.0 devices.
- Those who use a Linux host must also be able to access exFAT partitions using the appropriate kernel or FUSE modules.
- Download and install 7-Zip (for Windows Hosts) or Keka (macOS). Without these extraction tools, you'll be unable to extract large archives we'll supply to you in class.
- Download and install either VMware Workstation Pro 15.5.x, VMware Player 15.5.x, or Fusion 11.5.x or higher versions before class.
- If you do not own a licensed copy of VMware Workstation or Fusion, you can download a free 30-day trial copy from VMware. VMware will send you a time-limited serial number if you register for the trial at its website.
- Other virtualization software, such as VirtualBox and Hyper-V, are not appropriate because of compatibility and troubleshooting problems you might encounter during class.
- VMware Workstation Pro and VMware Player on Windows 10 are not compatible with Windows 10 Credential Guard and Device Guard technologies. Please disable these capabilities for the duration of the class if they're enabled on your system by following instructions in this document.
Mandatory Host Hardware Requirements
- CPU: 64-bit 2.5+ GHz multi-core processor or higher
- BIOS/UEFI: VT-x, AMD-V, or the equivalent must be enabled in the BIOS/UEFI
- Hard Disk: Solid-State Drive (SSD) is MANDATORY with 50GB of free disk space minimum
- Memory: 16GB of RAM or higher is mandatory for this class (IMPORTANT! - 16GB of RAM is MANDATORY)
- Working USB 2.0 or higher port
- Wireless Ethernet 802.11 B/G/N/AC
- Local Administrator Access within your host operating system
Mandatory Host Operating System Requirements
You must use a 64-bit laptop with one of the following operating systems that have been verified to be compatible with course VMware image:
- Latest version of Windows 10, macOS 10.15.x or later, or
- Linux that also can install and run VMware virtualization products described below.
Mandatory Software Requirements
- Prior to class, ensure that the following software is installed on the host operating system:
- VMware Workstation Pro 15.5.X+, VMware Player 15.5.X+, or Fusion 11.5+
- Zip File Utility (7Zip or the built-in operating system zip utility)
- Cloud Virtual Machine (AWS AMI)
- If your workstation or network does not meet the above requirements, please reach out to your instructor, TA, or OnDemand SME for access to the SEC540 Amazon Machine Image (AMI). After sharing the AMI, instructions will be provided for launching and connecting to the virtual machine over Remote Desktop (RDP). This option is required for students that cannot meet the laptop requirements.
Mandatory Cloud Account Requirements
- An Amazon Web Services (AWS) account is required to do hands-on exercises during this course. Students must create an AWS account prior to the start of class. The estimated AWS cost for running the lab environment is $20 per week. Costs are less for free-tier accounts.
- Microsoft Azure bonus challenges (optional) are available to students. Completing the bonus challenges requires that students register a Microsoft Azure account prior to the start of class. The estimated Azure cost for running the lab environment is $20 per week.
In summary, before beginning the course you should:
- Have a laptop with a solid-state drive (SSD), 16GB of RAM, and a 64-bit operating system.
- Install VMware (Workstation or Fusion).
- Windows only: Verify that the BIOS settings have the Intel VT virtualization extensions enabled.
- Download the SEC540 Lab Setup Instructions and Course Media from your sans.org account.
- Register a NEW AWS account prior to the start of the class at https://aws.amazon.com/
- Register a NEW Azure account and paid subscription prior to the start of class at https://azure.microsoft.com
After you have completed those steps, your course media will be delivered via download. The media files for class can be large, some in the 40 to 50 GB range. You need to allow plenty of time for the download to complete. Internet connections and speed vary greatly and are dependent on many different factors. Therefore, it is not possible to give an estimate of the length of time it will take to download your materials. Please start your course media downloads as you get the link. You will need your course media immediately on the first day of class. Waiting until the night before the class starts to begin your download has a high probability of failure.
SANS has begun providing printed materials in PDF form. Additionally, certain classes are using an electronic workbook in addition to the PDFs. The number of classes using eWorkbooks will increase quickly. In this new environment, we have found that a second monitor and/or a tablet device can be useful for keeping the class materials visible while the instructor is presenting or while you are working on lab exercises.
"DevOps and the cloud are radically changing the way that organizations design, build, deploy, and operate online systems. Leaders like Amazon, Etsy, and Netflix are able to deploy hundreds or even thousands of changes every day, continuously learning, improving, and growing - and leaving - their competitors far behind. Now DevOps and the cloud are making their way from Internet "Unicorns" and cloud providers into enterprises.
Traditional approaches to security can't come close to keeping up with this rate of accelerated change. Engineering and operations teams that have broken down the "walls of confusion" in their organizations are increasingly leveraging new kinds of automation, including Infrastructure as Code, Continuous Delivery and Continuous Deployment, microservices, containers, and cloud service platforms. The question is: Can security take advantage of the tools and automation to better secure its systems?
Security must be reinvented in a DevOps and cloud world."
"Instructor's insight and knowledge of the material and how to apply it in real life scenarios was very valuable." - Chris Turvey, Southeastern Grocers