T1195.001: Compromise Software Dependencies and Development Tools
Adversaries may manipulate software dependencies and development tools prior to receipt by a final consumer for the purpose of data or system compromise. Applications often depend on external software to function properly. Popular open source projects that are used as dependencies in many applications may be targeted as a means to add malicious code to users of the dependency.
Targeting may be specific to a desired victim set or may be distributed to a broad set of consumers but only move on to additional tactics on specific victims.
Positive Technologies products that cover the technique
MaxPatrol SIEM knowledge base
supply_chain: PT-CR-1772: SupplyChain_Dependency_Confusion: An internal proprietary library is downloaded from an external repository. This may indicate a Dependency Confusion attack (CVE-2021-29427).
Detection
ID | DS0022 | Data source and component | File: File Metadata | Description | Use verification of distributed binaries through hash checking or other integrity checking mechanisms. Scan downloads for malicious signatures and attempt to test software and updates prior to deployment while taking note of potential suspicious activity. |
---|
Mitigation
ID | M1033 | Name | Limit Software Installation | Description | Where possible, consider requiring developers to pull from internal repositories containing verified and approved packages rather than from external ones. |
---|
ID | M1016 | Name | Vulnerability Scanning | Description | Continuous monitoring of vulnerability sources and the use of automatic and manual code review tools should also be implemented as well. |
---|
ID | M1051 | Name | Update Software | Description | A patch management process should be implemented to check unused dependencies, unmaintained and/or previously vulnerable dependencies, unnecessary features, components, files, and documentation. |
---|
ID | M1013 | Name | Application Developer Guidance | Description | Application developers should be cautious when selecting third-party libraries to integrate into their application. Additionally, where possible, developers should lock software dependencies to specific versions rather than pulling the latest version on build. |
---|