Cybersecurity

Managing Open-Source Dependency Risk

Updated July 20, 2021By the CalliArc team

Key takeaway

Most of your application is code you didn't write. Commit lockfiles, patch on a schedule rather than in a panic, check licences before adoption, and evaluate each new dependency on maintenance health — an abandoned package is a liability you inherit permanently.

A modern application typically contains far more third-party code than first-party code. That's a good trade, but it means your security and legal position is largely determined by decisions made in other people's repositories.

Judge a dependency before adopting it

  • Maintenance signals — recent commits, responsive issues, more than one maintainer, a release history.
  • Transitive weight — how many packages does it drag in? A small convenience library with forty dependencies is not small.
  • Licence compatibility with how you distribute your software. Copyleft licences in a distributed product are a legal decision, not a technical one.
  • Could you write and maintain this yourself in an afternoon? For trivial utilities, sometimes that's the lower-risk answer.

The hygiene that prevents most incidents

  • Commit lockfiles so builds are reproducible and an upstream change can't alter what you ship.
  • Automated vulnerability scanning in CI, with an agreed timeline for criticals rather than case-by-case debate.
  • A regular update cadence — small, frequent upgrades are routine; annual bulk upgrades are projects.
  • Pin versions, and review what a major upgrade changes rather than accepting it automatically.
  • Generate a dependency inventory so that when a widely-used package is compromised, you can answer "are we affected?" in minutes.

Supply-chain attacks are the modern risk

Attackers increasingly target the package rather than the application: typosquatted names, compromised maintainer accounts, and malicious post-install scripts. Verify package names carefully, prefer signed releases where they're available, and be particularly cautious in build pipelines — a malicious install script runs with your CI system's credentials.

Plan for abandonment

  • Know which dependencies are business-critical and check their maintenance health periodically.
  • For critical unmaintained packages, the options are to fork and maintain, replace, or absorb the functionality. All three are cheaper decided in advance than during an incident.
  • Isolate risky dependencies behind an interface of your own so replacing one is contained.
  • Contribute back to the packages you depend on most; it's the cheapest insurance available on their continued existence.
Share LinkedIn X

Ready to build it right?

Get a transparent, milestone-based estimate for your project in a free consultation.

Book a free strategy call