Binary Code Analysis for IEC 62443-4-1 SVV-3
Hugo Genesse
S4x24 - ICS Security Conference · Day 3 · Stage 2
Overview
In this insightful talk, Hugo Genesse from Hitachi Energy presented a pragmatic and open-source methodology for achieving compliance with IEC 62443-4-1 SVV3 requirements, specifically focusing on the vulnerability testing of compiled software. The standard, critical for cybersecurity in industrial automation and control systems, often presents vague or incomplete guidance for its more technical sections, leaving developers and product security teams to interpret and implement complex requirements. Genesse's presentation addresses this gap by outlining a concrete process built upon readily available tools, designed to be accessible even for organizations with limited budgets.

Key moments
- 0:00 Introduction and the challenge of empty standard sections
- 0:50 Overview of four IEC 62443-4-1 SVV3 requirements
- 2:40 Interpreting 'Security Rule Violations' with CWE
- 4:05 Interpreting 'Compiler Settings' using BinSkim
- 5:15 Introducing the open-source, budget-friendly analysis process
- 5:50 Specific open-source tools for firmware analysis stages
- 7:00 Challenges of complex firmware structures and manual analysis
Binary Code Analysis for IEC 62443-4-1 SVV-3
Speakers: Hugo Genesse
Conference: S4
YouTube: https://www.youtube.com/watch?v=1prqHbTKORU
Overview
In this insightful talk, Hugo Genesse from Hitachi Energy presented a pragmatic and open-source methodology for achieving compliance with IEC 62443-4-1 SVV3 requirements, specifically focusing on the vulnerability testing of compiled software. The standard, critical for cybersecurity in industrial automation and control systems, often presents vague or incomplete guidance for its more technical sections, leaving developers and product security teams to interpret and implement complex requirements. Genesse's presentation addresses this gap by outlining a concrete process built upon readily available tools, designed to be accessible even for organizations with limited budgets.
The core challenge tackled is the lack of explicit "how-to" instructions within the IEC 62443 standard regarding compiled software vulnerability analysis. Hitachi Energy's initiative stems from an internal need to ensure their products meet these stringent cybersecurity benchmarks. Genesse, drawing on his background in reverse engineering, details a comprehensive approach that covers identifying known vulnerabilities, managing external libraries, detecting security rule violations, and verifying compiler settings – all through the lens of binary code analysis. This talk provides a critical roadmap for any organization seeking to validate the security posture of their embedded systems and firmware in accordance with leading industry standards.
Background
▶ Watch: Introduction and the challenge of empty standard sections (0:00)
The IEC 62443 standard is a cornerstone for securing Industrial Automation and Control Systems (IACS). Within this standard, IEC 62443-4-1 specifies the secure product development lifecycle requirements, and SVV3 (Vulnerability Testing) is a crucial component. For compiled software, SVV3 mandates four key areas of assurance:
- No Known Vulnerabilities: Products must not ship with known vulnerabilities in their firmware or compiled software.
- External Vulnerable Libraries: Products must not link to external libraries that contain known vulnerabilities.
- Security Rule Violations: The compiled software should not exhibit security rule violations.
- Compiler Settings: Compiler settings must not introduce or facilitate vulnerabilities.
The significant challenge, as highlighted by Genesse, is that while the standard clearly defines what needs to be done, the accompanying guidance on how to achieve these requirements, particularly for compiled software, is often sparse or entirely absent. This forces organizations like Hitachi Energy to develop their own interpretations and processes. Developers frequently encounter this ambiguity, prompting a need for practical, technical solutions to satisfy compliance mandates.
Traditional Software Composition Analysis (SCA) tools are well-suited for addressing the first two requirements, primarily by generating a Software Bill of Materials (SBOM) and cross-referencing identified components against public vulnerability databases. This area is considered mature, with numerous commercial and open-source solutions available.
However, the latter two requirements—security rule violations and compiler settings—venture into more abstract territory. The standard's appendix for security rule violations suggests a metric based on the number of warnings from SCA, where "no warnings" equates to complete security. Hitachi Energy's interpretation diverges significantly, proposing that security rule violations should be directly linked to Common Weakness Enumeration (CWE) categories. This approach offers a more precise, actionable, and vendor-agnostic framework for developers to understand and address identified weaknesses. Furthermore, while SCA is typically static, Genesse emphasizes the value of combining static and dynamic analysis techniques to uncover a broader range of bugs. A crucial consideration for compiled software is that the distinction between internally developed and third-party code often blurs after compilation; therefore, all code within the final firmware package must be scanned, as some vulnerabilities are only apparent or easier to detect at the binary level.
For compiler settings, the standard vaguely refers to "any setting that can lead to vulnerabilities" and mentions BinScope, a Microsoft tool that has since been deprecated. Hitachi Energy's refined interpretation focuses on ensuring that all applicable security mitigations (e.g., ASLR, DEP) are actively enabled during the build process. The choice of mitigations can vary significantly based on the binary format (e.g., Portable Executables or ELF files), compiler, and CPU architecture. The talk identifies BinSkim, Microsoft's successor to BinScope, as the recommended tool for this specific task.
The overarching problem addressed by Genesse is the need for a standardized, repeatable, and cost-effective process that leverages open-source tools to navigate these complex and often underspecified compliance requirements, enabling organizations to both secure their products and verify the security claims of their OEM vendors.
Key Findings
▶ Watch: Interpreting 'Security Rule Violations' with CWE (2:40)
The core contribution of this talk is the presentation of a coherent, practical, and open-source-centric methodology for addressing the often-vague requirements of IEC 62443-4-1 SVV3 for compiled software. Genesse's key findings revolve around interpreting the standard's demands through actionable technical steps and leveraging specific tools.
Firstly, a critical insight is that firmware extraction is the foundational and most challenging step in binary code analysis. If components cannot be reliably extracted from a firmware image, all subsequent analysis—whether for SBOM generation, vulnerability scanning, or security rule violation detection—becomes irrelevant. This step often requires significant manual effort, reverse engineering expertise, and an understanding of diverse, sometimes proprietary, bundling formats.
Secondly, the talk proposes a more robust interpretation of "security rule violations" by directly correlating them with Common Weakness Enumeration (CWE) categories. This approach moves beyond generic warnings from static analysis tools, providing developers with clear, standardized definitions of weaknesses, improving the accuracy of vulnerability assessment, and reducing vendor lock-in regarding vulnerability definitions.
Thirdly, Genesse advocates for a multi-tool approach, integrating several powerful open-source utilities to cover different facets of SVV3. This includes EMBA (Embedded System Analysis) and Binwalk for firmware extraction and initial SCA, CWE checker for static analysis of security rule violations, and BinSkim for verifying secure compiler settings. This combination ensures comprehensive coverage and leverages the strengths of each specialized tool.
Finally, the presentation underscores the ongoing necessity of human expertise and manual analysis, particularly when dealing with complex or custom firmware structures, such as embedded Linux stacks within Wi-Fi modules. While automated tools provide a strong baseline, a human analyst remains crucial for interpreting ambiguous results, developing custom extraction algorithms, and validating findings. This acknowledges the limitations of fully automated solutions in the intricate landscape of embedded systems security.
Technical Deep Dive
▶ Watch: Interpreting 'Compiler Settings' using BinSkim (4:05)
The process proposed by Hitachi Energy for IEC 62443-4-1 SVV3 compliance is a structured, multi-stage pipeline designed to analyze compiled software comprehensively. It emphasizes open-source tools and a pragmatic approach to interpretation.
The overall process can be broken down into four main phases:
- Firmware Extraction and Component Identification: This initial, critical step involves taking a binary firmware image and dissecting it to identify and extract individual components, libraries, and executables. This forms the basis for all subsequent analysis.
- Software Bill of Materials (SBOM) Generation and Vulnerability Scanning: Once components are extracted, an SBOM is built, listing all identified software elements and their versions. These are then checked against known vulnerability databases.
- Security Rule Violation Detection: This phase involves performing static analysis on the extracted binaries to identify common programming weaknesses and security rule violations, mapping them to CWEs.
- Compiler Setting Verification: The final stage focuses on ensuring that the compiled binaries have been built with appropriate security mitigations enabled.
Firmware Extraction
This is arguably the most challenging and foundational step. As Genesse states, "If that fails, basically all your analysis that you'll do afterwards will be irrelevant." The goal is to recursively unpack firmware images, often containing nested file systems, compressed data, or proprietary formats, to expose all constituent binaries.
- Tools:
- EMBA (Embedded System Analysis): While EMBA performs extensive analysis, it also includes robust firmware extraction capabilities. It's an actively maintained, modular command-line interface that can process various embedded systems firmware, extracting components and building an initial SBOM. It also generates a comprehensive HTML report summarizing its findings.
- Binwalk: This widely used open-source tool is essential for identifying files and executables embedded within firmware images. It performs signature scanning and entropy analysis, which can reveal compressed, encrypted, or otherwise obfuscated sections. Binwalk supports recursive scanning, attempting to extract content from nested structures.
- Xdump: Mentioned as a complementary tool, Xdump can also assist in entropy analysis, providing insights into the layout and potential obfuscation of firmware sections.
- Challenges: Firmware extraction is often a manual and iterative process. Developers use various custom or proprietary bundling formats, making universal automated extraction difficult. When tools fail, human intervention is required, often involving reverse engineering to understand the firmware's structure and develop custom extraction algorithms. This is particularly true for complex scenarios, such as a Wi-Fi module containing a full Linux stack within a larger device's firmware. Genesse acknowledges that even with improvements in tools (like "version two" of their internal process), significant manual work and domain knowledge are still necessary to ensure complete and accurate extraction.
Software Composition Analysis (SCA) & Known Vulnerabilities
Once components are extracted, the next step is to identify them and check for known vulnerabilities.
- Tool:
- EMBA: Beyond extraction, EMBA excels at Software Composition Analysis. It identifies software components, their versions, and then cross-references this information with vulnerability databases to flag potential issues. Its modular design allows for a wide array of checks. The tool’s command-line interface is powerful, and its HTML reports provide an easily browsable summary of identified components, versions, and associated vulnerabilities, making it suitable for both automated pipelines and manual review.
Security Rule Violations
This phase addresses the requirement for compiled software not to have security rule violations, which Hitachi Energy interprets as CWE-categorized vulnerabilities.
- Tool:
- CWE checker: This open-source tool, developed by a German university, performs static analysis on binaries. It constructs a large graph representation of the code and then applies common program analysis techniques and graph-based methods to identify weaknesses. It focuses on finding vulnerabilities like null pointer dereferences and out-of-bounds writes.
- Functionality: CWE checker is designed to be easy to run, often available as a Docker image. It provides detailed output, including the specific memory addresses where potential vulnerabilities are detected. This level of detail is crucial for developers or security analysts to investigate findings in a disassembler or decompiler and differentiate between true vulnerabilities and false positives. The tool's default scanning configuration is sufficient for identifying "low-hanging fruit" vulnerabilities, though it can be customized for more in-depth analysis. By linking findings to CWEs, it provides a standardized language for describing and addressing these weaknesses.
Compiler Settings
The final aspect of the analysis focuses on ensuring that the binaries have been compiled with appropriate security settings and mitigations enabled.
- Tool:
- BinSkim: This tool, actively developed and maintained by Microsoft, is the recommended successor to the deprecated BinScope. BinSkim checks various build security settings.
- Functionality: Its primary purpose is to verify that applicable security mitigations—such as Address Space Layout Randomization (ASLR), Data Execution Prevention (DEP), and Safe Structured Exception Handling (SafeSEH)—are correctly configured during compilation. The applicability of these mitigations can vary depending on the target platform, compiler, and binary format (e.g., Portable Executables for Windows or ELF files for Linux/Unix-like systems). BinSkim helps ensure that the compiled software benefits from the best available platform security features, significantly reducing the attack surface for memory corruption vulnerabilities.
By combining these open-source tools and a structured process, Hitachi Energy provides a robust, cost-effective, and auditable method for achieving and demonstrating compliance with IEC 62443-4-1 SVV3 for compiled software.
Demo / Proof of Concept
▶ Watch: Specific open-source tools for firmware analysis stages (5:50)
While a live, interactive demonstration of the entire process wasn't performed during the talk, Hugo Genesse effectively illustrated the capabilities of the recommended tools by presenting visual examples of their output. These examples served as a proof of concept for the efficacy of the proposed methodology.
For EMBA, the speaker showed an export of its HTML report. This report clearly identified various components within the analyzed firmware, listing their detected versions and flagging potential vulnerabilities associated with those components. The visual output demonstrated EMBA's ability to consolidate complex SCA results into an accessible format, allowing users to browse through findings and understand the security posture of the embedded software's dependencies. This showcased how EMBA helps fulfill the requirements related to known vulnerabilities and external vulnerable libraries.
Regarding CWE checker, the presentation included an example of its successful run output. This textual output highlighted specific findings, such as identified null pointer dereferences and out-of-bounds writes. Crucially, the output also pinpointed the exact memory addresses where these vulnerable code patterns were detected. This level of detail is invaluable for a security analyst or developer, as it allows them to directly inspect the identified locations in a disassembler or decompiler to assess the validity of the finding and determine if it constitutes a genuine vulnerability or a false positive. This demonstrated how CWE checker aids in identifying security rule violations at the binary level, linking them to specific CWEs.
Although BinSkim was discussed as a critical tool for verifying compiler settings, specific output examples for this utility were not shown. However, the explanation of its function in ensuring security mitigations are enabled provided a clear understanding of its role in the overall process.
The presented outputs, particularly from EMBA and CWE checker, provided concrete evidence that the proposed open-source toolchain can effectively identify and report on key aspects of compiled software security, directly addressing the requirements of IEC 62443-4-1 SVV3.
Defensive Implications
▶ Watch: Challenges of complex firmware structures and manual analysis (7:00)
The methodology presented by Hugo Genesse offers several critical defensive implications for organizations developing or deploying industrial control systems and other embedded devices. Adopting this approach can significantly enhance the security posture of compiled software and ensure compliance with stringent standards like IEC 62443.
Firstly, organizations should prioritize and invest in robust firmware extraction capabilities. Recognizing that this is the foundational and often most challenging step, security teams must develop expertise in using tools like Binwalk and EMBA, and be prepared for manual reverse engineering to handle custom or complex firmware formats. Without complete and accurate extraction, all subsequent analysis is compromised. This also implies the need for collaboration with developers to understand internal bundling mechanisms.
Secondly, the talk underscores the importance of a comprehensive Software Composition Analysis (SCA) strategy that extends beyond source code. By using tools like EMBA on compiled binaries, defenders can identify all embedded components and their versions, including those from third parties that might not be visible in source-level SBOMs. This enables proactive identification of known vulnerabilities in dependencies, a critical step for risk management.
Thirdly, integrating static analysis for security rule violations at the binary level, as demonstrated with CWE checker, is crucial. Linking these violations to Common Weakness Enumeration (CWE) provides a standardized and actionable framework for remediation. Defenders should establish processes to routinely scan their compiled software, interpret the findings, and triage potential vulnerabilities based on their CWE categorization. This helps in catching bugs that might be missed at the source code level or are easier to spot in the compiled form.
Fourthly, organizations must regularly verify their compiler security settings using tools like BinSkim. Ensuring that all applicable mitigations such as ASLR and DEP are enabled is a fundamental security hygiene practice that significantly raises the bar for attackers attempting memory corruption exploits. This should be integrated into the CI/CD pipeline or build verification process.
Furthermore, the presented methodology provides a powerful framework for third-party risk assessment. Organizations can apply this open-source process to firmware received from OEM vendors to independently verify their compliance with IEC 62443-4-1 SVV3 requirements, rather than relying solely on vendor attestations. This enhances supply chain security and builds trust.
Finally, the talk implicitly advocates for a hybrid approach combining automated tooling with human expertise. While tools provide efficiency and scale, complex embedded systems often require manual analysis, especially for custom firmware or when automated tools yield ambiguous results. Security teams should cultivate reverse engineering skills to complement automated binary analysis pipelines, ensuring comprehensive and accurate security assessments. This holistic strategy empowers defenders to proactively identify, mitigate, and manage vulnerabilities in their critical industrial and embedded systems.
Key Takeaways
- IEC 62443-4-1 SVV3 compliance for compiled software requires practical interpretation and a structured process, as the standard's guidance is often vague or absent, necessitating internal methodologies.
- Firmware extraction is the critical, foundational, and often most challenging step in binary code analysis; its success dictates the viability of all subsequent security assessments.
- A multi-tool, open-source approach provides a cost-effective and comprehensive solution for SVV3 requirements, leveraging tools like EMBA for SCA, Binwalk for extraction, CWE checker for static analysis, and BinSkim for compiler setting verification.
- Security rule violations should be directly linked to Common Weakness Enumeration (CWE) for standardized, actionable, and vendor-agnostic vulnerability categorization, moving beyond generic warnings.
- Comprehensive binary analysis necessitates scanning all compiled code (internal and third-party) and often requires significant human expertise and manual reverse engineering to complement automated tools, especially for complex embedded systems.
- The presented process enables organizations to verify their own product security and independently audit OEM vendor compliance, enhancing supply chain security and overall trust in industrial systems.
About the Speaker(s)
Hugo Genesse is a security professional at Hitachi Energy. He brings a strong background in reverse engineering to his work, which heavily influences his approach to analyzing compiled software and embedded systems. His expertise is instrumental in developing and implementing practical cybersecurity strategies, particularly in the context of complex standards like IEC 62443, where deep technical insight is required to interpret and fulfill ambiguous requirements.
Reviews
Dr. Zero (Offensive Security Researcher) — STRONG ACCEPT
This talk provides a highly practical, open-source-driven methodology for meeting the often-vague IEC 62443-4-1 SVV3 requirements for compiled software vulnerability analysis. Genesse, drawing on deep reverse engineering expertise, outlines a structured process using tools like EMBA, Binwalk, CWE checker, and BinSkim, offering concrete interpretations for security rule violations and compiler settings. It's a valuable roadmap for any organization needing to secure embedded systems and verify OEM compliance, demonstrating how to tackle a complex problem with actionable technical steps.
Heather Calloway (CISO) — MUST SEE
Genesse's talk delivers a clear, pragmatic, and open-source methodology for navigating the often-vague IEC 62443-4-1 SVV3 requirements for compiled software. This is not just a technical solution; it's a critical framework for demonstrating institutional accountability in product security. By providing a structured approach to binary analysis, it empowers organizations to proactively manage risk, ensure compliance, and independently verify the security posture of their own products and those from OEM vendors, directly addressing a significant supply chain governance challenge.