Securitylab•July 19, 2026•🇷🇺Translated from Russian

Understanding SCA: How Software Composition Analysis Helps Manage Software Supply Chain Risks

Modern applications are rarely written from scratch. Developers assemble products from proprietary code, open-source libraries, commercial modules, container images, system packages, and ready-made service components. This approach accelerates development but raises a critical question: who exactly knows what the application consists of?

SCA, or Software Composition Analysis, answers this question directly. The tool examines a project, locates third-party components, identifies versions, maps dependency chains, checks for known vulnerabilities, and reviews licenses. OWASP describes component analysis as a method for identifying risks associated with the use of third-party and open-source software parts, while the automated implementation of this approach is commonly called SCA. The method complements broader software supply chain protection because vulnerabilities can hide not in company code but in libraries that have not been touched for years.

What SCA Is Used For

The primary task of SCA is to give teams visibility. Without such visibility, developers and security teams operate almost blindly. The codebase may contain an outdated version of a popular library, a component with a conflicting license, or a dependency that has long been unsupported. Until a tool builds a map of the composition, the risk remains a guess.

SCA is applied at multiple stages. At an early stage, the tool checks new dependencies before they enter the main development branch. During the build process, SCA can block a release if the project contains a critical vulnerability or a prohibited license. After a version is released, the tool continues monitoring the same components because a new vulnerability may appear months or years later.

  • Search for known vulnerabilities in third-party libraries and system packages;
  • Control direct and transitive dependencies;
  • Verify licenses and risks for commercial use;
  • Generate a component inventory often called an SBOM;
  • Monitor outdated, abandoned, or suspicious packages;
  • Enforce rules that prohibit dangerous components in builds;
  • Quickly assess affected applications after a new vulnerability is published.

SCA is also used to create a Software Bill of Materials. An SBOM records components, versions, dependency relationships, and metadata. CISA views SBOMs as the foundation of software supply chain transparency. SCA frequently serves as the data source for such inventories and later helps compare product composition against vulnerability databases.

Advantages Offered by SCA

SCA reduces reaction time. When a new dangerous vulnerability emerges, the team does not start a manual search across all projects. The tool already knows where the required library is located, which version is used, and through which dependency the component entered the application. For large organizations, the difference between hours and weeks can determine the outcome of an incident.

A second advantage relates to risk management rather than vulnerability discovery alone. An old, unsupported library may contain no known issues today but could become a source of urgent work tomorrow. A license may permit internal use yet block product sales. A package may have a name similar to a popular component and be used for substitution attacks. A good SCA solution reveals multiple types of risk instead of turning security into a list of red icons.

A third advantage appears in developers’ daily work. SCA does not require teams to read security bulletins manually. The tool suggests concrete actions: update the component to a safe version, replace the library, confirm that vulnerable code is not called in the project, or create an exception with a review date. The closer the check is to development, the fewer conflicts arise between speed and security.

How SCA Differs from Other Application Security Tools

Application security tools solve different tasks, although they often look similar on marketing pages. SAST (Static Application Security Testing) searches for errors in developers’ own code: unsafe input handling, memory management mistakes, weak cryptography, or command injection risks. SCA does not examine application logic; it examines composition—what external components entered the product and what risks each component carries.

DAST (Dynamic Application Security Testing) attacks a running application from the outside and looks for behavioral problems. Such a tool may find a vulnerable login form or incorrect header configuration but usually cannot report which library version resides inside a container. SCA, conversely, cannot prove that a specific entry point is exploitable via a web request, yet it quickly locates components with known vulnerabilities across many projects.

Boundaries between tools are gradually blurring. Many modern SCA platforms can analyze container images, while some container-scanning solutions incorporate application dependency data. The fundamental division of responsibilities remains: SCA handles composition, SAST handles proprietary code, and DAST handles runtime behavior.

What a Good SCA Solution Contains and Offers

A capable SCA solution first discovers components by reading manifest files, lock files, container images, archives, executables, and sometimes source code. It then matches discovered components against package databases, vulnerability databases, and license directories. The more accurate the recognition, the fewer false positives and missed dependencies occur.

The tool then evaluates risk, showing vulnerabilities, severity, available safe versions, the path by which a component entered the project, the existence of a fix, and potential product impact. Advanced systems add context: whether the vulnerable component is used in production code, whether the dangerous code path is reachable, and whether risk can be temporarily reduced through configuration or requires immediate library updates.

Another important layer involves exchange formats. In practice, SPDX and CycloneDX are frequently encountered. SPDX is the open international standard ISO/IEC 5962:2021 for describing software components and related information. CycloneDX focuses on composition, dependencies, and supply-chain security data. Formats alone do not protect a product but help transfer software composition information between developers, suppliers, customers, and analysis tools.

VEX (Vulnerability Exploitability eXchange) allows a supplier or team to explicitly state the status of a vulnerability in a specific product: affected, not affected, under investigation, or fixed. VEX is often supplied together with an SBOM so that the component list does not become a catalog of every CVE without understanding real product risk.

Who Needs SCA and How to Apply the Tools

SCA is needed not only by security teams. Developers use it to select dependencies before a library becomes part of the product. Development managers see technical debt and the volume of required updates. Security teams obtain a risk picture across applications. Legal departments review licenses. Procurement teams can request SBOMs from vendors and verify third-party products before deployment.

In Russian conditions, component accounting is becoming increasingly relevant in the context of GOST R 56939-2024 and FSTEC requirements for secure software development. For products requiring certification and proof of composition control, SCA assists both security specialists and those preparing evidentiary materials for development processes.

Implementation is best done gradually. A team first connects analysis to one or two projects, reviews the volume of findings, and tunes rules. Blocking all builds over every medium-severity vulnerability will cause developers to bypass the checks. Policies must consider product type, internet exposure, presence of personal data, system criticality, and support duration.

Limitations of SCA and Common Mistakes

SCA is not a magic button. The tool depends on the quality of component data, recognition accuracy, completeness of vulnerability databases, and correct project configuration. If a build downloads dependencies in a non-standard way, some components may be missing from the report. If developers copy foreign code manually without declaring a package, standard manifest analysis will not detect the fragment.

False positives also occur. A vulnerability may affect a function the application never uses. A component may exist only in a test environment. A package may have been built with vendor modifications that public vulnerability descriptions do not account for. Therefore, SCA should support decision-making rather than automatically declare an emergency for every new CVE identifier.

SCA does not discover zero-day vulnerabilities or issues absent from public databases such as CVE, GHSA, or OSV. The tool works only with known data. Checking should occur with every significant change rather than quarterly. SBOMs should not be treated as one-time documents because software composition changes with every release. Blocking everything without prioritization quickly leads to alert fatigue. License risks must not be ignored, as legal exposure sometimes surfaces later than technical issues. Exceptions without owners and review dates tend to become permanent. Finally, focusing only on direct dependencies is dangerous because transitive components often carry the main risk.

Why Software Composition Analysis Matters

Third-party components have become the norm rather than the exception. A logging library, authorization module, image parser, database client, and base container image can appear in hundreds of services. A single vulnerability in a popular component forces teams to check the entire application fleet. Without SCA, such verification turns into manual team surveys and searches through outdated tables.

Analysis of software composition is also important because risk changes after release. An application may have passed checks on release day, yet six months later the vulnerability database may contain a new entry. Teams that maintain version inventories quickly understand which products are affected. Teams without such inventories first try to recall where a library was used, then search for service owners, and eventually discover that some projects have long been unmaintained.

There is also a legal dimension. Open source does not mean absence of rules. Some licenses permit free use with almost no conditions, while others require disclosure of derivative works or retention of notices. For an internal system the risk may be moderate; for a commercial product or customer delivery the same component creates a different level of responsibility.

Related articles

Habr•Supply Chain & Open Source

Passwordless Kubernetes Image Pulling with Artifact Keeper via ServiceAccount Tokens

Kubernetes 1.34 and later enables kubelet to forward a pod's ServiceAccount token to an external image credential provider plugin, allowing the plugin to exchange it for short-lived read-only credentials from a compatible registry. Artifact Keeper, an open-source Rust-based OCI and package registry, implements an OIDC provider that validates these tokens and issues temporary credentials without requiring imagePullSecrets in manifests. The approach follows zero-trust principles by eliminating long-lived secrets that can leak across namespaces or clusters. A custom credential provider binary handles the token exchange, enforces audience restrictions, and redacts sensitive data from logs. The solution requires specific ClusterRole permissions for nodes, kubelet flags, and registry-side OIDC mappings that bind Kubernetes namespaces to read-only groups. Testing on kind 1.34.3 confirmed successful pulls for authorized ServiceAccounts and clear 401 errors for unauthorized ones when imagePullPolicy is set to Always.

Security NEXT•Supply Chain & Open Source

Malicious Code Injected into LiteLLM Open Source AI Package via Supply Chain Attack

The open-source generative AI tool LiteLLM had malicious code inserted into its official distribution packages, enabling credential theft and remote code execution. The compromise affected version 1.107.0 released on October 21, 2026, and was delivered through legitimate channels in a classic software supply chain attack. Seven malicious wheel files were uploaded to PyPI, while official container images on Docker Hub and GitHub Container Registry were also tainted. Security firm JFrog discovered that the malware steals a wide range of secrets including cloud credentials, SSH private keys, browser-stored passwords, development tokens, and AI service API keys from LiteLLM's database. The code also supports execution of externally fetched payloads and abuses Python's startup mechanisms to run even when the application itself is not loaded. This marks the second supply chain incident involving the project in 2026, following a separate event in March.

BoletimSec•Supply Chain & Open Source

GhostAction Campaign Compromises 790 GitHub Repositories via Malicious Workflows

Researchers from OpenSourceMalware have identified 790 publicly accessible GitHub repositories containing malicious workflows planted by the GhostAction campaign as of October 9. The campaign abuses trusted maintainer accounts to inject workflows that automatically exfiltrate secrets including AWS access keys and tokens for GitHub, GitLab, Google, Slack, SendGrid, OpenAI, Anthropic, and OpenRouter. Earlier counts by GitGuardian recorded 772 repositories between August 31 and September 30, though the datasets differ and are not cumulative. A separate wave on October 8 impacted 346 repositories linked to two maintainer accounts, including a project belonging to Uber. The malicious workflow runs on code pushes or manual triggers, scans repository files and full Git history for credentials, and sends findings in plaintext to attacker infrastructure. Removing the workflow file does not mitigate exposure, as successful executions already leak credentials and old commits may still contain secrets.

AntiMalware•Supply Chain & Open Source

SberTech Launches Platform V Orchestrator for Security Services to Scan Software Before Corporate Deployment

SberTech has announced the launch of a new direction focused on analyzing the security of software prior to its integration into corporate infrastructures. The initiative is built around the company's own Laboratory for Software Verification and the technological platform Platform V Orchestrator for Security Services. This platform combines components for working with both built-in and external analysis tools, enabling checks of digital artifacts, control over software composition and changes, and detection of vulnerabilities, hidden threats, and defects in source code and repositories. SberTech aims to replace fragmented checks and manual result processing with a single managed process, allowing scaled verification without proportional team growth. The move responds to the adoption of hundreds of products from various vendors, widespread use of open-source components, and rising attacks on software supply chains. Primary customers include banks, industrial enterprises, telecom operators, energy companies, and the public sector. The solution is offered as a standalone product that supports on-premises deployment and operation in isolated environments such as private clouds and dedicated data processing contours.