Hackers of India

Surviving In Dependency Hell

By  Kumar Ashwin  on 06 Aug 2023 @ C0c0n


Presentation Material

AI Generated Summarymay contain errors

The speaker, Kumar Asin, discusses strategies for managing dependencies in a project, specifically in the Node.js environment. He highlights the importance of minimizing dependencies, standardizing package managers, and following semantic versioning.

He also talks about the diamond dependency problem, where different packages require different versions of the same dependency, leading to duplication of dependencies. He suggests using npm’s dup command to identify duplicate packages and update them to the minimum version required for all packages to work together.

The speaker emphasizes the importance of security teams working collaboratively with product teams to identify and prioritize vulnerabilities. He recommends performing due diligence to validate vulnerabilities, understanding their impact on the product, and providing actionable information to the product team.

Additionally, Kumar Asin shares best practices for managing dependencies, including:

  1. Minimizing dependencies
  2. Standardizing package managers
  3. Following semantic versioning
  4. Checking for associated security issues, such as CVEs and exploits
  5. Verifying backward compatibility
  6. Applying the “you ain’t going to need it” principle to avoid unnecessary dependencies
  7. Considering license and legal implications of using packages
  8. Evaluating package popularity and safety
  9. Avoiding unused or overly complicated dependencies

He concludes by emphasizing the importance of embracing chaos in managing dependencies and ensuring that security and product teams work together effectively.