New

SEC568: Product Security Penetration Testing - Safeguarding Supply Chains and Managing Third-Party Risk

  • In Person (5 days)
  • Online
30 CPEs

Attackers are using new methods of compromising software supply chains that bypass traditional security controls multiple attack surfaces. SEC568 offers comprehensive training, equipping you with the technical expertise to conduct precise product security assessments and risk analysis. Gain the knowledge and skills needed to protect your digital assets in a rapidly changing threat landscape.

What You Will Learn

Think Red, Act Blue

Gain foundational knowledge and practical methodologies for product security testing and risk analysis with SEC568: Product Security Penetration Testing. By utilizing offensive tactics with a defensive mindset, students will learn how to analyze the risk of introducing desktop, mobile, proprietary protocols, and hardware devices into your environment. You will use a wide variety of technical skills to gain a deep understanding of how a target operates.

Each section of the class will be accompanied by flow diagrams that provide each student a roadmap they can use navigate complex topics with documented processes and clearly defined goals. Through more than 20 hands-on lab exercises and a fully guided capstone exercise, you'll get practical experience that increases in technical depth as you progress through the course.

You Will Be Able To

  • Apply the entire product security testing process to commercial applications
  • Mitigate the impact of third-party applications and risk of supply chain attacks
  • Perform static firmware analysis to see what is running on a device
  • Dissect proprietary protocols
  • Collect, prepare, and analyze data with Python, Pandas DataFrame, and Jupyter Notebooks
  • Construct attack trees and use risk scoring methodology to determine risk of each discovered threat

Skills Learned

  • Windows OS basics
  • Linux OS basics
  • Android OS basics
  • How to conduct efficient internet searching
  • Networking fundamental concepts
  • How to decrypt networking traffic
  • How to build custom Scapy networking layers
  • How to collect, prepare, and analyze data with Python, Pandas DataFrame, and Jupyter Notebooks
  • When to continue or stop a product security assessment
  • A variety of threat modeling concepts
  • Different methods for determining risk
  • Basics of network fuzzing
  • How to analyze decompiled code

What You Will Receive

  • A Corellium license
  • 3 virtual machines
  • Process flow charts
  • An electronic workbook with step-by-step instructions for 20+ fully functional labs that do not expire and can be repeated any time after the course

Syllabus (30 CPEs)

Download PDF
  • Overview

    The first section of this course describes the principles associated with both supply chain attacks and product security testing. We start to navigate the "why" and the "what" to product security testing, followed by which skills are important for success. We introduce our main methodology, our toolbox included in the supplied virtual machines, and the name of our fictitious company you will be working for during the class, "Think Red, Act Blue". The main technical emphasis for section one will be to explore the basic, yet critical concept, of online product research followed by our first sections of basic enumeration and threat modeling. Through lectures and 3 hands-on exercises we will explore how to use simple tools such as binwalk, Corellium, APKLab, APKLeaks and associated product security methodologies to begin to understand how your target accomplishes its main goals. Students will be provided with access to a cloud-based mobile emulation platform (Corellium) to complete the last lab of this section.

    Exercises
    • Initial recon of product, existing CVEs, and vendor website
    • Unpacking firmware and examining components
    • Basic enumeration of an Android Package Kit (APK) with Corellium
    Topics

    Course overview and methodology

    • This module is focused on an introduction to product security assessments and its application to combating supply chain attacks. We will start by covering the who, what, when, where, and how methodologies for product security assessments, with a particular emphasis on online product research and basic enumeration.

    General and software supply chain application

    • In this module we will explore several practical examples of when you want to deploy the concepts and processes of this course in real-world scenarios not related to supply chain attacks, followed by diving into supply chain attacks and ultimately demonstrating how product security testing is a critical component of your defenses.

    Online product research

    • With an overview of the process under our belt, in this module we will start to follow the Product Security Testing flow chart. We will look at how to effectively acquire system requirements and efficiently perform online product research, a concept that is recurring and critical to product security testing.

    Basic enumeration on hardware devices, Linux & Android

    • In this module we will embark on understanding the core technical concepts needed to start evaluating a target using basic enumeration. We will start with the overall methodology of basic enumeration and then dive into the specific core concepts and tools needed for hardware devices, Linux, and Android.

  • Overview

    The second section of the course will close out our study of basic enumeration by looking at the Windows platform and networking concepts that fit within the basic enumeration methodology. This will include using tools such as Microsoft Attack Surface Analyzer (ASA), Microsoft Sysinternal Suite, ProcDOT and more. This will allow for an in-depth conversation around the important role threat modeling plays in product security assessments and is a crucial first step to reducing the impact of supply chain attacks. Doing threat modeling and answering questions related to product security testing requires sifting through a large amount of data. In this section, we will introduce Exploratory Data Analysis (EDA), a common workflow to conduct analysis used to try to make sense of the data and present the results. Through lectures, demos, and hands-on exercises we will learn how to explore this data using data science tools like Python, Jupyter Notebooks, Pandas DataFrame, and graphical libraries like Matplotlib, among others. Lastly, this section will start to segue into the course's deeper technical concepts by introducing deep enumeration.

    Exercises
    • Basic enumeration on Windows
    • Initial network traffic profiling with Pandas DataFrame & Jupyter Notebooks
    • Investigating network traffic on Android

    Topics

    Basic enumeration on Windows

    • Continuing to build on concepts from the previous section on basic enumeration, this section will look at how to apply basic enumeration to the Windows platform, arguable the most used platform in enterprise make it a critical component to understand. We will cover important concepts related to product security testing, walk through relevant Windows fundamentals, and provide useful tools for performing basic enumeration on Windows.

    Basic networking analysis

    • This module will introduce network analysis at a basic level as it pertains to basic enumeration. Besides exploring important fundamental networking concepts, this module will leverage some basic data analysis and traffic profiling with Jupyter Notebooks and Pandas DataFrame to help demonstrate how to turn complex analysis into a more simplistic and visual task.

    Threat modeling

    • Threat modeling is a crucial concept in successful product security testing but even more important is when to perform threat modeling. This module will discuss different types of threat modeling, demonstrate one suggested approach within product security testing, and cover the information required to build a useful model. This module will conclude with a review of how our process up to this point has impacted the way we defend against supply chain attacks.

    Deep enumeration

    • Section 2 will just begin to explore the concept of deep enumeration. We will introduce deep enumeration, explore how a threat model influences deep enumeration, and discuss when to deploy these techniques. This module will begin increasing the technical depth of the course and push students' knowledge of finer topics and conclude with a section on networking concepts related to deep enumeration.
  • Overview

    This section is all about deep enumeration, the process of deeper technical analysis to answer critical questions from a threat model. We will focus on two deep enumeration skills: binary code analysis and network analysis of unknown protocols. In the first half of section 3, we will learn how to use decompiler tools to access the underlying code of an application and unpack archives when needed. This will culminate in a hands-on lab using JetBrain's dotPeek to answer critical questions related to supply chain attacks regarding how an application is being updated. Network traffic is often a key input to a system and a common entry point for attackers. To dive deeper into network analysis, this section will also take a pause to provide a primer into Scapy, a Python framework designed to manipulate networking packets. Armed with the knowledge and skills covered in this section, you will be better prepared to dissect proprietary or unknown protocols later in the course.

    Exercises
    • Using APKLab and HTTP Toolkit to defeat cert pinning
    • Learning from decompiled source code
    • Using Scapy to create a 3-way handshake
    • Searching for networking artifacts within payloads
    • Bonus: Learning from decompiled source code on Android
    Topics

    Intro to Deep Network Analysis

    • This module will build on the principles discussed during basic network analysis but dive deeper starting with encryption. While encryption is a great tool for security, we will discuss how to verify if it's implemented in a way that makes it more difficult for an attacker to access your information. This module will include a lab providing the student with hands-on experience bypass encryption used on a popular Android application.

    Binary code analysis

    • The ground truth to how a target or system works is its source code. Unless the application or device you are auditing is open source, you will not have access to this code. Binary code analysis is the concept of performing a code review without having access to the source code. This module walks through some basic skills to apply binary code analysis during product security testing as one of the two core concepts covered in this course within deep enumeration.

    Scapy primer

    • In order to dive deeper into network analysis, it is beneficial to be able to programmatically analysis and create networking packets. Scapy is a python module that helps take our analysis and testing to the next level. This module of section 3 will teach the basics of Scapy needed for product security testing.

    Understanding proprietary protocols

    • We will leverage the knowledge of Scapy acquired in the previous module and apply it to the deep enumeration concept of understanding unknown or proprietary protocols. This last module of section 3 will be an introduction to proprietary protocols that will be continued in section 4.
  • Overview

    This section will conclude our exploration of deep enumeration and work toward finalizing a product security test project. We begin with a continuation and finalization of dissecting proprietary protocols using Scapy to create custom layers and explain the basics of networking fuzzing. This will bring us to our final risk analysis section where we will focus on creating attack trees and applying risk scoring methods to assess the risk of supply chain attacks, among other risks to the Think Red, Act Blue organization. The section will conclude with important final topics that will allow us to wrap up our product security assessment, such as reporting and vulnerability disclosure.

    Exercises
    • Learning through enumerating patterns
    • Finding your network traffic's heartbeat
    • Using basic Linux tools to analyze unknown payloads
    • Basic fuzzing with Scapy
    • Results analysis
    Topics

    Dissecting proprietary protocols

    • This module is one of the most technically challenging sections of the course, as we discuss how to use techniques such as enumerating patterns and finding heartbeat packets to help gain a glimpse of the purpose of every byte in a packet payload. We will examine several real protocols and lean on previous modules such as data analysis with Pandas DataFrame and Scapy to gain as much insight as possible.

    Fuzzing

    • Every threat model should contain a risk of unknown vulnerabilities. While fuzzing is often considered a vast and sometimes daunting topic in security, it can help reduce the risk of unknown vulnerabilities plaguing your network. This module will explore the basic concepts of networking fuzzing as part of deep enumeration and the value it can bring to a product security test.

    Risk analysis

    • Determining the risk associated with our technical findings is the most important step of a product security test event. This module will focus on questions like: What does this mean for my organization? What steps can I take to mitigate my findings? Here we will study how to turn your previous threat model into realistic attack trees and quantify the risk for each scenario using a modified and improved version of the DREAD risk scoring method.

    Reporting

    • In many cases it will be required to report your findings and processes throughout your organization. This module will talk about industry best practices in reporting your findings from product security testing and highlight important items directly related to supply chain attacks.

    Vulnerability disclosure

    • In some cases, your analysis will result in the discovery of new vulnerabilities. This module will highlight best practices in reporting your team's finding to the affected vendors.
  • Overview

    The course culminates in an all-day hands-on lab designed to give each student the experience of completing a product security test from start to finish. Students will be given a real application to test during this course section, which will apply the most crucial concepts learned throughout each previous section using the toolbox included in the supplied virtual machines and cloud-based labs.

    Exercises
    • Basic enumeration: Installation analysis
    • Basic enumeration: Execution analysis
    • Threat modeling
    • Deep enumeration: Network analysis
    • Results analysis
    Topics

    Introduction to target

    • The section will start with an introduction to the target application and the basics of how it functions. This will help frame the following exercises and reduce the time needed to learn the basics of the program.

    Hands-on product security testing event

    • The product security test for this section has been broken down into 5 hands-on exercises. Each exercise will guide the student through one of the core concepts of the product security testing process, including basic enumeration, threat modeling, deep enumeration, and results analysis.

    Instructor-led discussion

    • Each lab exercise will be followed by an instructor-led discussion on what was uncovered during the lab. This will help ensure all students stay on the best path to provide the highest amount of value from the event.

Prerequisites

  • Basic Python coding skills
  • Basic OS fundamentals
  • Basic networking knowledge
  • Understanding of core security principals
  • Experience using VMware and virtual machines

Laptop Requirements

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.

CRITICAL NOTE: Apple systems using the M1 processor line cannot perform the necessary virtualization functionality and therefore cannot in any way be used for this course.

A properly configured system is required for each student participating in this course. Before coming to class, 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. It is necessary to 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. You also must have 8 GB of RAM or higher for the VM to function properly in the class.

It is critical that your CPU and operating system support 64-bit so that our 64-bit guest virtual machine will run on your laptop.

In addition to having 64-bit capable hardware, AMD-V, Intel VT-x, or the equivalent must be enabled in BIOS/UEFI.

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 their 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 is 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 SEC568 SYSTEM REQUIREMENTS:
  • CPU: 64-bit 2.0+ GHz processor or higher-based system is mandatory for this class (Important - Please Read: a 64-bit system processor is mandatory)
  • BIOS/UEFI: VT-x, AMD-V, or the equivalent must be enabled in the BIOS/UEFI
  • RAM: 8 GB (gigabytes) of RAM or higher is mandatory for this class (Important - Please Read: 8 GB of RAM or higher is mandatory. 16 gigs of RAM is recommended)
  • Wireless Ethernet 802.11 B/G/N/AC
  • USB 3.0 Ports highly recommended
  • Disk: 100 Gigabytes of free disk space
  • Administrative access to disable any AV, endpoint security software or host-based firewall
  • Ability to disable your enterprise VPN client temporarily for some exercises
  • Ability to disable your anti-virus tools temporarily for some exercises
  • VMware Workstation Pro 15.5.X+, VMware Player 15.5.X+ or Fusion 11.5+
  • A Linux and Windows virtual machines will be provided in class

If you have additional questions about the laptop specifications, please contact support.

Author Statement

"In our many years of experience conducting security assessments, we have observed the importance of being able to develop a holistic picture of the major areas of risk of an organization, while at the same time being prepared to zero-in on the risks introduced by a particular device or a specific product. However, the reality is that many organizations lack the knowledge and skills required to do a proper product security assessment. Some of these often rely on vulnerability scans that offer minimal information, with a focus on patching the systems evaluated and implementing generic security controls. Many others simply choose to ignore these threats altogether, closing their eyes to the reality and hoping for the best, while silently transferring the risk to their users, customers, and other stakeholders.

While it's true that threat actors still use unpatched vulnerabilities to obtain initial access into their victims, we are now seeing how attackers are more commonly using new methods of compromising software supply chains, undermining trust in the patching process by inserting malicious code into legitimate products. Think about it this way: Each time your organization deploys and installs new software on desktop, mobile, and cloud platforms, you can be creating new 'holes' in your cyber defenses, from which sensitive data can leak.

We have designed this course to address this gap. Throughout five sections filled up with case studies, techniques, instructor-led demos and over 20 hands-on labs in realistic lab settings (including a final end-to-end capstone exercise), we will provide you with the knowledge and skills required to 'Think Red, Act Blue' and combat these supply chain attacks employing product security testing. Our goal as authors is to make this class as practical and valuable to you and your organization as possible. To fulfil this promise, all the exercises we have created can be repeated at your own pace, both during and after class, and are thoroughly documented to maximize your learning experience.

Armed with the knowledge and skills we teach you in this class, you will obtain deep technical understanding of how product security testing works and how it can help mitigate the risks that any organization faces when it comes to supply chain attacks."

- Douglas McKee and Ismael Valenzuela

Reviews

This is exactly what we've been talking about at work with threat modeling and software being added to the network.
Steven Ostrander
Booz Allen Hamilton
This is hard.... But very fun!
Phillip Locke
Government Organization
The material and instructors are excellent. Doug and Ismael have shared information on this topic that I have not found anywhere else.
Brian Wiggins
National Hockey League

    Register for SEC568

    Prices below exclude applicable taxes and shipping costs. If applicable, these will be shown on the last page of checkout.

    Loading...