<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Daniel Parmenvik</title>
    <description>The latest articles on Forem by Daniel Parmenvik (@danielp).</description>
    <link>https://forem.com/danielp</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F381614%2F83352c67-7555-4ca3-809f-a38685f3a148.png</url>
      <title>Forem: Daniel Parmenvik</title>
      <link>https://forem.com/danielp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/danielp"/>
    <language>en</language>
    <item>
      <title>Supercharged Dependency Management With A Dependency Firewall</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Fri, 26 May 2023 13:11:26 +0000</pubDate>
      <link>https://forem.com/danielp/supercharged-dependency-management-with-a-dependency-firewall-llp</link>
      <guid>https://forem.com/danielp/supercharged-dependency-management-with-a-dependency-firewall-llp</guid>
      <description>&lt;p&gt;Hey devs,&lt;/p&gt;

&lt;p&gt;Thought I'd share a new way to manage dependencies securely.&lt;/p&gt;

&lt;p&gt;Enter &lt;strong&gt;&lt;a href="https://bytesafe.dev/pricing/#community-edition"&gt;Bytesafe Community Edition&lt;/a&gt;&lt;/strong&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why a Dependency Firewall?
&lt;/h2&gt;

&lt;p&gt;In our increasingly connected world, your applications are only as secure as your most vulnerable dependency. This is where a &lt;a href="https://docs.bytesafe.dev/dependency-firewall/"&gt;Dependency Firewall&lt;/a&gt; comes in. It guards your projects and organization against insecure or malicious packages. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How?&lt;/strong&gt; Not only does it protect your software from known vulnerabilities, but it also blocks packages that could compromise your environments by putting them in &lt;a href="https://docs.bytesafe.dev/quarantine/"&gt;Quarantine&lt;/a&gt; based on your configured set of policies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's the kicker:&lt;/strong&gt; Bytesafe Community Edition isn't just an effective package repository; it's also boosted with a built-in Dependency Firewall where you are in control of the knobs.&lt;/p&gt;

&lt;p&gt;Bytesafe is a high-performing alternative that can handle &lt;code&gt;npm&lt;/code&gt;, &lt;code&gt;Maven&lt;/code&gt;, &lt;code&gt;Python (pypi)&lt;/code&gt;, and &lt;code&gt;NuGet&lt;/code&gt; packages. &lt;/p&gt;

&lt;p&gt;You're probably comfortable with your current setup using &lt;strong&gt;&lt;code&gt;Verdaccio&lt;/code&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;code&gt;Nexus Repository OSS&lt;/code&gt;&lt;/strong&gt;. But what if you could step it up a notch?&lt;/p&gt;

&lt;p&gt;Let's explore some of the reasons you might want to try Bytesafe out or make a switch:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Advanced Security
&lt;/h3&gt;

&lt;p&gt;Bytesafe puts a strong emphasis on security (and not only package management). It has a built-in feature that detects vulnerabilities in your dependencies. Moreover, it introduces the concept of a Dependency Firewall to block malicious packages based on the policies you configure. &lt;/p&gt;

&lt;p&gt;I know you've read all about the increasing number of attacks and that they are becoming more sophisticated, how post-install scripts can install pretty much anything etc. - &lt;em&gt;so you can never be too careful&lt;/em&gt;. Bytesafe helps you sleep better. &lt;/p&gt;

&lt;h3&gt;
  
  
  2. Powerful and Free
&lt;/h3&gt;

&lt;p&gt;The Community Edition is absolutely free. You get the robust features and capabilities of a top-tier solution, without burning a hole in your pocket. Yes there are limitations compared to the commercial alternative, but for small teams it rocks! Look at this &lt;a href="https://bytesafe.dev/pricing/#community-edition"&gt;feature comparison&lt;/a&gt; to see the differences.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Easily Installable
&lt;/h3&gt;

&lt;p&gt;Bytesafe can be easily downloaded and installed via &lt;code&gt;Docker&lt;/code&gt; or &lt;code&gt;Kubernetes&lt;/code&gt;, making it an excellent choice for devs operating in diverse environments. &lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started with Bytesafe - Download &amp;amp; Install
&lt;/h2&gt;

&lt;p&gt;To get started with Bytesafe, head over to the &lt;a href="https://github.com/bitfront-se/bytesafe-ce"&gt;Official Github Repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For more in-depth guidance on how to set up and use Bytesafe, refer to the &lt;a href="https://docs.bytesafe.dev/community-edition/"&gt;Official Documentation&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;For npm enthusiasts, you can follow the &lt;a href="https://bytesafe.dev/posts/bytesafe-ce-and-npm/"&gt;Bytesafe and npm guide&lt;/a&gt;. Pythonistas can refer to the &lt;a href="https://bytesafe.dev/posts/bytesafe-ce-and-python/"&gt;Bytesafe and Python guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Bytesafe Community Edition is a game changer for small teams in dependency management. Its advanced features, emphasis on security and being able to control workflows, and ease of installation make it a compelling alternative to existing tools. &lt;/p&gt;

&lt;p&gt;So, why not give Bytesafe a try and let us know your thoughts? Feedback or have any issues, create issues in the &lt;a href="https://github.com/bitfront-se/bytesafe-ce/issues"&gt;Official Github Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy coding!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you found this article helpful, be sure to leave a 👍, comment and share it with your friends. And help spread the word!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>npm</category>
      <category>pypi</category>
      <category>devops</category>
    </item>
    <item>
      <title>Protect Your System from Install Scripts in npm packages</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Fri, 13 Jan 2023 14:40:25 +0000</pubDate>
      <link>https://forem.com/danielp/protect-your-system-from-install-scripts-in-npm-packages-43ob</link>
      <guid>https://forem.com/danielp/protect-your-system-from-install-scripts-in-npm-packages-43ob</guid>
      <description>&lt;p&gt;Fellow developers, utilizing open source dependencies in your projects can bring many benefits, but it's important to be aware of the potential dangers as well. One hidden risk to watch out for are &lt;strong&gt;Install Scripts&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Install scripts are scripts that run automatically when a dependency is installed and can be used for tasks such as transpiling source code and fetching remote resources. However, they can also be used to execute malicious code on your system, potentially stealing data, encrypting files for ransom, or launching other attacks.&lt;/p&gt;

&lt;p&gt;Using install scripts is a common method for spreading malware via npm packages, so it's essential to take extra precautions to protect yourself from malicious install scripts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Blocking Install Scripts to avoid malware
&lt;/h2&gt;

&lt;p&gt;Although it's possible to disable install scripts in package managers like npm, they by default automatically execute Install scripts automatically by default.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 1 - do it manually
&lt;/h3&gt;

&lt;p&gt;One way to block install scripts and avoid malware is to disable them manually by using &lt;code&gt;npm install --ignore-scripts&lt;/code&gt;. However, this may be a challenge to enforce for an entire company or across all environments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F094ctk303g39jd0uenr2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F094ctk303g39jd0uenr2.png" alt="Block Install Scripts Policy" width="640" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 2 - automatic enforcement for an entire company
&lt;/h3&gt;

&lt;p&gt;Another option is to use a &lt;strong&gt;Dependency Firewall&lt;/strong&gt;, such as &lt;a href="https://bytesafe.dev" rel="noopener noreferrer"&gt;Bytesafe&lt;/a&gt;, which allows you to quarantine unwanted open source packages with vulnerabilities or non-compliant licenses. The platform provides a policy engine where you define the open source usage and security rules and the Dependency Firewall does the enforcement.&lt;/p&gt;

&lt;p&gt;The security policy &lt;strong&gt;Block Install Scripts&lt;/strong&gt; for npm firewalls and registries can block all npm packages with pre- and post-install scripts, allowing you to use packages with confidence knowing they have been reviewed for potential security risks.&lt;/p&gt;

&lt;p&gt;Keep in mind, packages may depend on install scripts, so some initial review work may be required.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>fullstack</category>
      <category>career</category>
      <category>devto</category>
    </item>
    <item>
      <title>Create a free private Maven repository with Bytesafe</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Wed, 26 Jan 2022 08:37:49 +0000</pubDate>
      <link>https://forem.com/danielp/create-a-free-private-maven-repository-with-bytesafe-32ip</link>
      <guid>https://forem.com/danielp/create-a-free-private-maven-repository-with-bytesafe-32ip</guid>
      <description>&lt;p&gt;Working with any of &lt;strong&gt;Maven&lt;/strong&gt; or &lt;strong&gt;Gradle&lt;/strong&gt; in your &lt;strong&gt;Java&lt;/strong&gt;, &lt;strong&gt;Kotlin&lt;/strong&gt; and &lt;strong&gt;Scala&lt;/strong&gt; applications?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recently heard of any supply chain attacks, account takeovers or malicious dependencies?&lt;/em&gt; Yeah, almost daily...&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's more important than ever to keep track of your software composition and the risks you're exposed to. And better yet - stay in control of your dependencies with a private registry and stay secure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Continue reading to add security to your supply chain using &lt;a href="https://bytesafe.dev" rel="noopener noreferrer"&gt;Bytesafe&lt;/a&gt; and stay in control of what dependencies you use.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;By the way, creating a hosted private Maven repository is &lt;strong&gt;FREE!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0zk2lu2usahg06ynhjy7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0zk2lu2usahg06ynhjy7.png" alt="Bytesafe"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why use a private repository?
&lt;/h2&gt;

&lt;p&gt;There are many benefits of using a private regisrtry. For example, using a private registry is the right way to go if you want to lower your business risk and:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Want a central hub to host all your dependencies - private and public ones.&lt;/li&gt;
&lt;li&gt;Continuously want to monitor packages for vulnerabilities or license issues.&lt;/li&gt;
&lt;li&gt;Require a dependency firewall that can control and block unwanted packages from entering your supply chain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A private and hosted repository allows you to focus on your code and can get started without having to think of and plan for infrastructure, capacity management, maintenance etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to set up a private repository with minimal effort?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Great!&lt;/strong&gt; You’ve decided you need a private repository and want to get going.&lt;/p&gt;

&lt;p&gt;These steps will let you get your own private repository using &lt;a href="https://bytesafe.dev" rel="noopener noreferrer"&gt;Bytesafe&lt;/a&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Create a Bytesafe Workspace
&lt;/h3&gt;

&lt;p&gt;First create your own workspace by &lt;a href="https://login.bytesafe.dev/signup" rel="noopener noreferrer"&gt;signing up&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Just select the workspace name that you would like to use. &lt;/p&gt;

&lt;p&gt;When you have created your account you can access your workspace by using the workspace name you’ve just create: https://&amp;lt;&lt;em&gt;workspace&lt;/em&gt;&amp;gt;.bytesafe.dev&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Sign in to your Workspace
&lt;/h3&gt;

&lt;p&gt;Use your GitHub, Google, Microsoft login or sign in using email and password. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Congratulations!&lt;/strong&gt; You now have access to your first private repository called "default". It's ready to be used. You can also create more registries with support for other ecosystems (npm, nuget) - quick and easy!&lt;/p&gt;

&lt;p&gt;If your organization prefers integrating using SAML for Single Sign-On, that is supported too.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Configure Maven to use Bytesafe as a Proxy
&lt;/h3&gt;

&lt;p&gt;Bytesafe private Maven registries allow users to both deploy internal Maven artifacts and proxy public packages from Maven repositories.&lt;/p&gt;

&lt;p&gt;A single source for all Maven compatible packages required by your teams and CI/CD pipelines.&lt;/p&gt;

&lt;p&gt;Configuration details are described &lt;a href="https://docs.bytesafe.dev/package-managers/maven/" rel="noopener noreferrer"&gt;here&lt;/a&gt;, but the simple steps you need to take are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create and add an access token to your &lt;code&gt;settings.xml&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Point out your Bytesafe Maven repository (&lt;code&gt;settings.xml&lt;/code&gt; / &lt;code&gt;pom.xml&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Now continue to use Maven or Gradle like you're used to - but with the benefit of having Bytesafe as your Dependency Firewall with secure dependencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F073mis0188eopgpkiwc8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F073mis0188eopgpkiwc8.png" alt="Secure Supply Chain with Bytesafe"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's a Dependency Firewall for Maven packages?
&lt;/h2&gt;

&lt;p&gt;The Bytesafe Dependency Firewall works with different package types, including &lt;strong&gt;Maven packages&lt;/strong&gt;. The Dependency Firewall adds significant security to an organization’s &lt;a href="https://bytesafe.dev/posts/preventing-supply-chain-attacks/" rel="noopener noreferrer"&gt;supply chain&lt;/a&gt; while at the same time being transparent and easy to use for developers.&lt;/p&gt;

&lt;p&gt;All new registries have Vulnerability Scanner and License Compliance enabled by default. Users can enable &lt;a href="https://dev.toautomatic%20quarantine"&gt;automatic quarantine&lt;/a&gt; of serious threats, preventing them from compromising your organization.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxv7hgyyfyddns8mm1iju.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxv7hgyyfyddns8mm1iju.png" alt="Log4J with vulnerabilities"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want to protect developers and automated environments from unintentionally adding newly released (and potentially malicious) dependencies? Customize the &lt;a href="https://bytesafe.dev/posts/safety-delay-protect-from-compromised-versions/" rel="noopener noreferrer"&gt;safety delays&lt;/a&gt; for your repository, allowing new versions to mature and be vetted by the community before use.&lt;/p&gt;

&lt;h2&gt;
  
  
  That's it!
&lt;/h2&gt;

&lt;p&gt;You have just added a layer of security with your first hosted private repository where packages are continuously scanned for vulnerabilities and license issues. Hope you'll enjoy your private registries! &lt;/p&gt;

&lt;p&gt;From here you can create more registries, enable &lt;a href="https://docs.bytesafe.dev/plugins/" rel="noopener noreferrer"&gt;plugins&lt;/a&gt; and &lt;a href="https://docs.bytesafe.dev/policies/" rel="noopener noreferrer"&gt;policies&lt;/a&gt; to get the right level of control that you require and optionally you can invite new team members which is a premium feature (as you'll have free trial of the Teams plan).&lt;/p&gt;

&lt;p&gt;Have any questions or suggestions on features that you would like to see? Comment below or contact us on Twitter &lt;a href="https://twitter.com/bytesafedev" rel="noopener noreferrer"&gt;@bytesafedev&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvkqdq0dkp354hhx3rwln.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvkqdq0dkp354hhx3rwln.png" alt="Know your dependencies with Bytesafe"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>maven</category>
      <category>gradle</category>
      <category>devops</category>
    </item>
    <item>
      <title>How to avoid Software Supply Chain Attacks</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Wed, 17 Nov 2021 10:19:31 +0000</pubDate>
      <link>https://forem.com/danielp/how-to-avoid-software-supply-chain-attacks-4a0l</link>
      <guid>https://forem.com/danielp/how-to-avoid-software-supply-chain-attacks-4a0l</guid>
      <description>&lt;p&gt;Cybersecurity attacks only continue to increase and in 2021, &lt;strong&gt;supply chain attacks are expected to grow by 400%&lt;/strong&gt; according to the report &lt;a href="https://www.enisa.europa.eu/publications/threat-landscape-for-supply-chain-attacks"&gt;ENISA Threat Landscape for Supply Chain Attacks&lt;/a&gt;. Security minded companies are quickly making supply chain security a main focal point - but the software supply chain is still considered the &lt;a href="https://bytesafe.dev/ebooks/weakest-link/"&gt;weakest link&lt;/a&gt; by threat actors.&lt;/p&gt;

&lt;p&gt;The increase is well in-line with how often we read about new ransomware and malware attacks. Just recently there were account takeovers on the popular packages &lt;a href="https://bytesafe.dev/posts/case-study-protecting-every-part-of-the-organization-from-malicious-threats/"&gt;ua-parser-js, coa and rc&lt;/a&gt; with a combined average of 30 million weekly downloads.&lt;/p&gt;

&lt;p&gt;If your organization is exposed to a malicious version, a compromised system means anything would be possible for attackers - installing backdoors, crypto miners, keyloggers and extraction of data. All bad and increasingly public, causing substantial monetary and reputational loss. Don’t think that JavaScript/npm is unique in this regard - the same problems exist in other ecosystems like Maven, Nuget and Python.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;One single bad dependency, out of the probably hundreds or even thousands of dependencies you are using, can put your whole business at risk. Failure to protect the supply chain is not an acceptable option.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SnToCEjw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0e6nx8pu60bgv6hygpnd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SnToCEjw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0e6nx8pu60bgv6hygpnd.png" alt="Stats for Supply Chain Attacks" title="Stats for Supply Chain Attacks" width="880" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even though the metrics are not the most uplifting, the great news is that with proper supply chain security you can mitigate threats and protect your organization. Stop the lurking big fish before it’s too late!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This article will guide you through the difference between an insecure and secure supply chain setup to prevent supply chain attacks.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why are supply chains so insecure?
&lt;/h2&gt;

&lt;p&gt;With ecosystems like npm it’s so easy to get caught in the dependency trap using external code for everything - even when in some cases components are one-liners. The more dependencies you use, the higher is your inherited risk. And from an attacker’s perspective it’s the more the merrier - as you’ll have more risk exposure.&lt;/p&gt;

&lt;p&gt;The reason why many organizations’ supply chains are considered insecure is the fact that Developers and CI/CD (build environments) have unfiltered access to the full universe of dependencies - directly from external sources.&lt;/p&gt;

&lt;p&gt;If your development pipeline is similar to this, you should pay extra attention to this article. Don’t worry, you are not alone and reading this article is a great first step.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Da6pdCpT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h1tkozhputnl7fv5s5vb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Da6pdCpT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h1tkozhputnl7fv5s5vb.png" alt="Insecure Supply Chain" title="Insecure Supply Chain" width="880" height="288"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When developers and CI/CD are able to install components directly from external sources there are no safeguards to protect you from malicious versions or vulnerabilities.&lt;/p&gt;

&lt;p&gt;Even though you benefit from rapid and creative development, you have no way of enforcing policies and controlling what dependencies are used in your organization. If you’re interested in reading up on the security risks related to the large dependencies trees, check out &lt;a href="https://bytesafe.dev/posts/case-study-protecting-every-part-of-the-organization-from-malicious-threats/"&gt;this article&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to avoid “Oops, we’ve had a security breach”
&lt;/h2&gt;

&lt;p&gt;Waking up and realizing that you’ve been compromised is a nightmare. And knowing it could’ve been prevented doesn’t help in afterthought. The fundamental thing to do is to adopt a secure software supply chain and protect your organization - now, before it’s too late.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A secure software supply chain&lt;/strong&gt; is about knowing what dependencies you’re using, keeping them secure and to be able to control workflows - across every developer workstation and automated environment within the organization. This includes an end-to-end security approach and enforcing the business policies you’ve decided at every step.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aHgEPvxA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eb3fiq7lyydam9z8qnrg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aHgEPvxA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eb3fiq7lyydam9z8qnrg.png" alt="Secure Supply Chain using Bytesafe" title="Secure Supply Chain using Bytesafe" width="880" height="288"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps to secure your supply chain
&lt;/h3&gt;

&lt;p&gt;We fully recognize that for many companies security is a journey, and knowing where to best get started can be a difficult decision and a barrier to properly addressing issues.&lt;/p&gt;

&lt;p&gt;To help out, we’ve compiled a shortlist of security steps to take your organization from basic protection to the maximum protection of the full &lt;a href="https://bytesafe.dev/"&gt;Bytesafe Dependency Firewall&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lFIw1xwo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/017h6djwdotuttw0dhmx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lFIw1xwo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/017h6djwdotuttw0dhmx.png" alt="Bytesafe Supply Chain Security Levels" title="Bytesafe Supply Chain Security Levels" width="880" height="588"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Basic - Protect your organization with a central dependency source
&lt;/h4&gt;

&lt;p&gt;Make sure every piece of your supply chain is sourcing data from a centralized internal source that you have control over, with known and allowed components.&lt;/p&gt;

&lt;p&gt;Remove direct links to unsecured dependency sources or else you run the risk of installing compromised and vulnerable dependencies.&lt;/p&gt;

&lt;h4&gt;
  
  
  Medium - Scan, identify and remediate issues
&lt;/h4&gt;

&lt;p&gt;Identifying issues early, reduces risk exposure and also saves both time and money. Continuously monitor the dependencies in your supply chain for security and &lt;a href="https://docs.bytesafe.dev/license-compliance/"&gt;license compliance&lt;/a&gt; issues.&lt;/p&gt;

&lt;p&gt;It’s important to use up to date and secure components, but patches should be applied &lt;strong&gt;intelligently and not instantly&lt;/strong&gt; to avoid zero-day attacks.&lt;/p&gt;

&lt;h4&gt;
  
  
  Advanced - Protect and Block
&lt;/h4&gt;

&lt;p&gt;Enforce your business policies. Set up policies to do the work for you and shift responsibility from individual-level to company-level.&lt;/p&gt;

&lt;p&gt;Protect internal packages from attacks like &lt;a href="https://bytesafe.dev/posts/secure-solution-to-dependency-confusion/"&gt;Dependency Confusion&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unifying everyone under the same level of protection (avoiding misconfiguration, which is a common source for attacks).&lt;/p&gt;

&lt;h4&gt;
  
  
  Maximum - Control workflows &amp;amp; verify deployed applications
&lt;/h4&gt;

&lt;p&gt;When improving cybersecurity protection, maximum protection includes being able to control workflows, check components for security and compliance issues and to verify the actual deployed applications.&lt;/p&gt;

&lt;p&gt;Bytesafe Dependency Firewall will automatically &lt;a href="https://bytesafe.dev/posts/using-quarantine-dependency-firewall/"&gt;quarantine unwanted&lt;/a&gt; packages so that they will be isolated from use in your organization. Like a chain supply guard, Bytesafe won’t let your organization use the unwanted packages.&lt;/p&gt;

&lt;p&gt;JavaScript dependencies are often bundled in your CI/CD environment, but dependencies can also be included in web applications using the &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag.&lt;/p&gt;

&lt;p&gt;Checking what has actually been deployed to production is a necessity for end-to-end security and for maximum protection.&lt;/p&gt;

&lt;p&gt;Be sure that you are able to freeze the universe and versions of dependencies you are using and that your registries/repositories you’re using can be adapted to your agile process - regardless if you have daily, sprint releases or monthly releases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thanks for reading!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>supplychain</category>
      <category>opensource</category>
      <category>security</category>
      <category>devops</category>
    </item>
    <item>
      <title>Crap, we might have installed a malicious dependency...</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Fri, 29 Oct 2021 10:24:01 +0000</pubDate>
      <link>https://forem.com/danielp/crap-we-might-have-installed-a-malicious-dependency-1p91</link>
      <guid>https://forem.com/danielp/crap-we-might-have-installed-a-malicious-dependency-1p91</guid>
      <description>&lt;p&gt;That was the reality for a lot of companies after the ua-parser-js supply chain attack. On October 22 three malicious versions of the popular package &lt;strong&gt;&lt;em&gt;ua-parser-js&lt;/em&gt;&lt;/strong&gt; were released. A package which has almost 8M weekly downloads. If your company has used compromised versions of this package directly or indirectly, consider your system as &lt;strong&gt;fully compromised&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So you might think how the heck is this even possible? After all, &lt;em&gt;“it’s just JavaScript”&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;The maintainer account for ua-parser-js was taken over, meaning attackers had control and deployed malware versions. These versions in turn were downloaded by many users around the world. Silently the malicious versions installed a trojan and a crypto mining application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The impact is critical&lt;/strong&gt; with the file system made public, screenshots taken as well as downloading and execution of unknown binaries. &lt;/p&gt;

&lt;blockquote&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;The result&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A lot of companies are still vigorously trying to figure out if they were exposed.  Often by spending resources and money on manually making sure no one inside their organization used the affected malicious versions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I fully understand the need for companies to be sure they’re not affected - but this problem also indicates that companies lack proper control over external dependencies. An investment into proper protection is something that would save money in the long run.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;TL;DR&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Malicious and packages with vulnerabilities. You need to protect you team, environments and organization without depending on specific individuals when it comes to dependency security. &lt;a href="https://bytesafe.dev/posts/cybersecurity-adding-security-to-products-processes/"&gt;Here's a free downloadable checklist (PDF) &lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How could this happen?
&lt;/h2&gt;

&lt;p&gt;The component ua-parser-js is used to detect browser user data and is used indirectly by many others. For example the popular web ui framework angular.js has a dependency to test framework karma which in turn has a dependency to ua-parser-js. This is commonplace in JavaScript where applications on average depend on up to 700 other components - and most of these are indirect.&lt;/p&gt;

&lt;p&gt;As you know, to be able to use a JavaScript app, you need to install its dependencies first. Something which is very easy, but where things can go really wrong. If the packages you’re installing, or any of the indirect dependencies, contain vulnerabilities, then you &lt;strong&gt;might be out of luck&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It’s crucial to secure your whole software supply chain&lt;/strong&gt;, including software build environments (CI/CD), test, development and similar.&lt;/p&gt;

&lt;p&gt;The problem lies in that a lot of environments are not restricted in what packages can be downloaded and installed. And with as little as 10% of all maintainers using two-factor authentication, the companies need to take dependency security as a serious threat and act accordingly.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, what's the solution?
&lt;/h2&gt;

&lt;p&gt;Quite a few people have contacted us asking how this could have been prevented and how to stay secure. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. You need automated tooling where you are able to secure your existing workflows.&lt;/strong&gt; This way developers and systems are secured by default. Unfortunately, many companies fail in this regard which is a major gamble. It works until it no longer does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Companies need to enforce dependency policies and make sure they have the right tools to be able to control what packages are allowed in the organization.&lt;/strong&gt; Make sure neither automated systems nor developers install the latest versions of packages without first taking a conscious decision. Avoiding outdated and vulnerable components is of course not an option either!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Companies need tooling to keep track of what components are used and where.&lt;/strong&gt; Manually reviewing every piece of software or line of code is neither efficient nor possible in many cases when an incident occurs. Be proactive and secure your supply chain before it’s an emergency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Download a checklist on dependency security
&lt;/h3&gt;

&lt;p&gt;We are in the final sprint of the &lt;strong&gt;Cybersecurity Awareness Month&lt;/strong&gt; - so why not spread some awareness 😊.  Here's a one page cheat sheet on what measures you can take to protect your organization, &lt;a href="https://bytesafe.dev/posts/cybersecurity-adding-security-to-products-processes/"&gt;link to blog post with a free downloadable PDF&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>npm</category>
    </item>
    <item>
      <title>Block npm package threats using a dependency firewall</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Tue, 24 Aug 2021 12:39:48 +0000</pubDate>
      <link>https://forem.com/danielp/block-npm-package-threats-using-a-dependency-firewall-34bb</link>
      <guid>https://forem.com/danielp/block-npm-package-threats-using-a-dependency-firewall-34bb</guid>
      <description>&lt;p&gt;If you've ever installed an npm package to JavaScript projects you doubtlessly have seen the status messages with a list of known vulnerabilities in the terminal output.&lt;/p&gt;

&lt;p&gt;With npm, yarn or pnpm providing basic vulnerability information during package installation, it's hard to ignore how frequent vulnerabilities have become. That’s great service and security measure for the millions of daily users that rely on these tools for their projects.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;added 57 packages and audited 3 packages in 107 s
2 critical severity vulnerabilities
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;But what if you want to block threats before they even enter your supply chain?&lt;/strong&gt; Maybe you prefer getting automatic notifications with critical issues instead of checking manually? Or, would like to avoid potential security risks that may be critical for certain environments? &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And what happens when it's no longer a developer installing dependencies, but rather an automated environment?&lt;/strong&gt; A key component of modern security tooling is to make sure threats are actively blocked, and you are notified of issues, even if no human is actively monitoring it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Below I will introduce you to how to quarantine problematic packages using the dependency firewall in &lt;a href="https://bytesafe.dev" rel="noopener noreferrer"&gt;Bytesafe&lt;/a&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whenever a critical vulnerability is detected you might want to take immediate actions so that your teams, environments and business are protected - so your software supply chain can remain secure. Go ahead to learn how to quarantine unwanted packages from entering your supply chain!&lt;/p&gt;



&lt;blockquote&gt;
&lt;h2&gt;
  
  
  Quarantine in short
&lt;/h2&gt;

&lt;p&gt;Quarantine allows you to automatically block the use of specific packages that surpass security threshold levels, for example npm packages with serious identified vulnerabilities. While simultaneously highlighting the issue for your teams to address instead of blocking (and hiding) them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8eft8g5nj5k418dxd1z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8eft8g5nj5k418dxd1z.png" title="Quarantined deprecated package" alt="Quarantined deprecated packaget"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This means that you’ll get a powerful tool to control allowed packages for all developers &amp;amp; systems while being very easy to use.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  Why use automatic quarantine of problematic packages?
&lt;/h2&gt;

&lt;p&gt;Secure usage of open source software is a necessity for modern organizations with cyber attacks becoming more and more of a common occurrence. And it's more than just an IT problem, with consequences that can potentially impact the whole organization. &lt;/p&gt;

&lt;p&gt;At the same time every development team is required to balance productivity with security needs. So security solutions need to protect you while still allowing you to be productive.&lt;/p&gt;

&lt;p&gt;Modern security problems require modern tooling. Efficient tooling that highlights potential issues while working within your regular workflow. Tooling like Bytesafe that continuously monitors your packages for issues and helps you stay secure.&lt;/p&gt;
&lt;h3&gt;
  
  
  Benefits of automatic quarantine of vulnerable packages
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prevent malicious threats with a firewall for your supply chain&lt;/strong&gt;. Quarantine packages according to your security thresholds. Automatically block the use of known vulnerable packages - while still securely holding the vulnerable version inside your Bytesafe workspace for you to address. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Highlight security issues for remediation&lt;/strong&gt;. Quarantine offers significant advantages to simply blocking packages outright. When a package is held securely within Bytesafe an issue will be created that notifies you of the problem. Allowing your team to easily and quickly remediate any issue and proceed with building awesome applications.   &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avoid getting overwhelmed with issues - configure your thresholds &amp;amp; rules&lt;/strong&gt;. Reducing noise to a manageable level is critical for any team. Otherwise notifications of security issues will simply get ignored. With Bytesafe you can customize at what severity level you want packages to be quarantined. You can also decide to avoid quarantine for issues without patch versions solutions available - all to allow you to work efficiently with your supply chain security. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Areas in the development life cycle (test, builds, deploys etc) are increasingly being automated with minimum human interaction. Make sure to keep up and manage open source dependencies securely with the appropriate level of detection and protection from vulnerabilities.&lt;/p&gt;
&lt;h2&gt;
  
  
  Configurable security thresholds according to your business needs
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://docs.bytesafe.dev/plugins/vulnerability-scanner/" rel="noopener noreferrer"&gt;Vulnerability&lt;/a&gt; and &lt;a href="https://docs.bytesafe.dev/plugins/license-scanner/" rel="noopener noreferrer"&gt;License&lt;/a&gt; scanners allow you to define when you want to pull the handbrake and immediately throw a package in quarantine.&lt;/p&gt;

&lt;p&gt;The vulnerable open source packages will be blocked from being used in your supply chain. This way you are effectively using Bytesafe as a firewall as a quarantined packaged cannot be used from the Bytesafe registry.&lt;/p&gt;

&lt;p&gt;The plugin settings contain additional configuration for when you want a package to be quarantined. When the quarantine feature has been enabled, the default threshold is set to High. This means that packages with a severity level higher or equal to High will be placed in quarantine.&lt;/p&gt;

&lt;p&gt;You can also configure to only quarantine packages if they have patch versions available, typically used when you want to be notified of problems but decide you want to continue your work without breaking any builds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39b4tcg7vzhu1uj2bamb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39b4tcg7vzhu1uj2bamb.png" title="Quarantine settings" alt="Quarantine settings"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Visit &lt;a href="https://docs.bytesafe.dev/quarantine/" rel="noopener noreferrer"&gt;Bytesafe documentation&lt;/a&gt; to learn more on how to configure quarantine for your needs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Release a package from quarantine
&lt;/h2&gt;

&lt;p&gt;In situations where you have evaluated the risks with a quarantined package and made an assessment to approve the use package you can easily release packages.&lt;/p&gt;

&lt;p&gt;Releasing from the quarantine area means the package version will be flagged as safe to use. The package will be accessible from Bytesafe by all developers and environments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02ybnmo7bnx3dzyqx6vs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02ybnmo7bnx3dzyqx6vs.png" title="Quarantined package" alt="Quarantined package"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The activity log of any issues related to this package will also show that the package has been released from the quarantine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8de3xgto9e34ti8ttbhc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8de3xgto9e34ti8ttbhc.png" title="Activity log of release from quarantine" alt="Activity log of release from quarantine"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Want to read more on how to control your software supply chain?
&lt;/h2&gt;

&lt;p&gt;Stay up to date with other security related posts that might interest you:&lt;/p&gt;
&lt;h3&gt;
  
  
  How to use a secure by default solution for dependency confusion
&lt;/h3&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/sumstrm" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F416513%2F9c4bfc54-d8ff-4de8-b0e5-db2b4a71ec2a.png" alt="sumstrm"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/sumstrm/automatically-protect-your-supply-chain-from-dependency-confusion-2n35" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Automatic protection from dependency confusion&lt;/h2&gt;
      &lt;h3&gt;Andreas Sommarström ・ May 19 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#npm&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#security&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#node&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;h3&gt;
  
  
  How issue tracking across your registries helps you get an overview of what needs your attention
&lt;/h3&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/danielp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F381614%2F83352c67-7555-4ca3-809f-a38685f3a148.png" alt="danielp"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/danielp/track-issues-with-problematic-npm-packages-30cc" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Track issues from problematic npm packages&lt;/h2&gt;
      &lt;h3&gt;Daniel Parmenvik ・ Aug 24 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#npm&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devops&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://twitter.com/bytesafedev" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3uehdo8j7i2g40bk382.png" alt="Follow Bytesafe on Twitter"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>npm</category>
      <category>devops</category>
      <category>security</category>
    </item>
    <item>
      <title>Track issues from problematic npm packages</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Tue, 24 Aug 2021 07:03:30 +0000</pubDate>
      <link>https://forem.com/danielp/track-issues-with-problematic-npm-packages-30cc</link>
      <guid>https://forem.com/danielp/track-issues-with-problematic-npm-packages-30cc</guid>
      <description>&lt;p&gt;Regardless if you’re working as a developer for a small startup or a global enterprise - you’re up to the same challenge. You’re dependent on open source npm packages outside your control and you need a way to keep track of problems that arise.&lt;/p&gt;

&lt;p&gt;Unfortunately the state of open source software is &lt;strong&gt;frequently changing 😫&lt;/strong&gt;. Problematic versions are detected all the time, so there’s never a guarantee that the components you’re using today won’t cause any problems in the future. It’s like a stream of problems that pop up and require you attention.&lt;/p&gt;

&lt;p&gt;This post describes how you can use the workflow in &lt;a href="https://bytesafe.dev" rel="noopener noreferrer"&gt;Bytesafe&lt;/a&gt; to keep track of detected problems in your private npm registries as well as what has been remediated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's move on!&lt;/strong&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Access to the REAL truth by tracking issues across all registries
&lt;/h2&gt;

&lt;p&gt;As you know, applications having hundreds of dependencies is a typical scenario. Keeping track of all problems that arise can be a challenge for any company and especially if you don’t have a structured process in place. Only scanning registries once in a while or periodically looking for new vulnerabilities or license compliance issues is not a sustainable solution to stay secure.&lt;/p&gt;

&lt;p&gt;So what you probably want is an automated workflow where you get a good overview of all problems, right?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is this good?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Normally you only see known issues during package installation when using an npm client (npm, yarn, pnpm), but future problems are not detected &lt;strong&gt;&lt;em&gt;unless&lt;/em&gt;&lt;/strong&gt; you use another tool that allows tracking of problems and that notifies you when new problems are detected. Using Bytesafe, you get access to the real truth = the state of your registries. If you are currently not monitoring your packages and issues, then you’re being blind-folded for problems like new vulnerabilities that might impact your security. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9c23izmoy06d81q6gob.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9c23izmoy06d81q6gob.png" title="Issues overview" alt="Issues overview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://docs.bytesafe.dev/plugins/" rel="noopener noreferrer"&gt;plugins&lt;/a&gt; and &lt;a href="https://docs.bytesafe.dev/policies/" rel="noopener noreferrer"&gt;policies&lt;/a&gt; in Bytesafe continuously monitor actions made to your registries and scan your existing packages for potential problems. If anything is detected, issues will immediately be created for you, notifications will be sent out and from there the workflow is straight forward. This saves time which instead can be used to remediate issues!&lt;/p&gt;

&lt;p&gt;The overview of issues can be filtered and if you prefer to search for a specific issue that is available as well.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Read more about &lt;a href="https://docs.bytesafe.dev/issues/" rel="noopener noreferrer"&gt;Issue tracking&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Issue metrics in the dashboards
&lt;/h3&gt;

&lt;p&gt;The Bytesafe &lt;a href="https://docs.bytesafe.dev/working-with-registries/dashboards/" rel="noopener noreferrer"&gt;dashboards&lt;/a&gt; show metrics with detected issues grouped by severity level. The metrics are linked and give quick access to the issues filtered depending on what metric you clicked on.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1zsjlyv7iaqs1uvsnzpc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1zsjlyv7iaqs1uvsnzpc.png" title="Issue metrics in Dashboards" alt="Issue metrics in Dashboards"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Track the remediation of open issues
&lt;/h2&gt;

&lt;p&gt;Keeping your open source libraries up to date is key. Issues in Bytesafe contain relevant information on why an issue was created and notify you when something needs your attention. &lt;/p&gt;

&lt;p&gt;Each issue is uniquely identified with a numeric identifier so that it is easy to refer to and share with others. All issues have a type, title, description, status and severity. If you decide to change severity levels, titles or descriptions you can do that by changing the values or editing the text.&lt;/p&gt;

&lt;p&gt;Issues can be linked by referring to other issue IDs in comments. Bytesafe also keeps track of similar issues, for example other issues caused by the same security advisory in different registries.&lt;/p&gt;

&lt;p&gt;Anyone interested in getting notifications for a particular issue can just add themselves as a watcher and stay updated.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr3j78rjz9njzjs1eixkd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr3j78rjz9njzjs1eixkd.png" title="Issue details page" alt="Issue details"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Track changes in the Activity log
&lt;/h3&gt;

&lt;p&gt;From an audit point of view, development teams are expected to know when packages were added to a registry, when issues were detected, what apps were impacted and finally when the issues were remediated.&lt;/p&gt;

&lt;p&gt;Bytesafe helps by tracking all updates and changes to package versions in the &lt;em&gt;Activity log&lt;/em&gt; where it is easy to follow what actions have been made. This is often requested information by organizations that require traceability, such as regulated businesses.&lt;/p&gt;

&lt;p&gt;Now you’ll quickly be able to give incident managers, risk officers, auditors and other stakeholders a fast response - no more digging in logs or similar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmxb65uffw3vbhlx0saqm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmxb65uffw3vbhlx0saqm.png" title="Issues Activity log" alt="Issues Activity log"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All issues are shown as clickable badges on the package card as seen in the examples below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04u527e6i0q9mkywstf0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04u527e6i0q9mkywstf0.png" title="Package cards with Issues" alt="Package card with Issues"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Read more about &lt;a href="https://docs.bytesafe.dev/issues/" rel="noopener noreferrer"&gt;Issue tracking&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Being exposed to risks such as vulnerabilities and license compliance issues is inevitable when using open source components. That’s why we need proper tooling to help us keep track of issue remediation and to reduce risk exposure.&lt;/p&gt;

&lt;p&gt;Hope you’ve learned how a tool like Bytesafe can help you in this regard.&lt;/p&gt;

&lt;p&gt;Cheers! 👍&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/bytesafedev" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3uehdo8j7i2g40bk382.png" alt="Follow Bytesafe on Twitter"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>npm</category>
      <category>devops</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Don’t upgrade your npm package versions by accident</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Mon, 28 Jun 2021 13:06:27 +0000</pubDate>
      <link>https://forem.com/danielp/don-t-upgrade-your-npm-package-versions-by-accident-video-3e93</link>
      <guid>https://forem.com/danielp/don-t-upgrade-your-npm-package-versions-by-accident-video-3e93</guid>
      <description>&lt;p&gt;&lt;em&gt;Looking for ways to make sure that your deployments to different environments are identical and use the exact same package versions? Or does your company have requirements to be able to reproduce deployments and trace exactly what dependencies were used at a specific time? &lt;strong&gt;Great - continue reading!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Being dependent on open source 📦 npm packages means dependencies to the public npm registry and npm package maintainers = constantly changing environment. This also means that you have the responsibility to keep track of what package versions were used in a specific deployment. This is a crucial task to reduce risks and make sure unintended changes have not been made.&lt;/p&gt;

&lt;p&gt;Even without any change to package.json your builds may produce a different set of dependencies at different points in time (semver versioning and addition of new minor versions to public registries).&lt;/p&gt;

&lt;p&gt;The slightest change in patch versions means your builds are no longer deterministic where you are guaranteed the exact same results - and deploying dependencies that have not been tested is never a good idea...&lt;/p&gt;

&lt;h2&gt;
  
  
  So what's the solution?
&lt;/h2&gt;

&lt;p&gt;💡 For me, the way to go is to freeze your registry when you want to avoid accidental updates. Freezing a registry effectively locks down the state of your package versions and makes the registry read-only so that only intended changes are applied to code you trust.&lt;/p&gt;

&lt;p&gt;The video below shows the easiest way to make your registry read-only using the &lt;a href="https://docs.bytesafe.dev/policies/freeze/"&gt;Freeze policy&lt;/a&gt; in Bytesafe:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/JdxeDRxvp7M"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Benefits of using the &lt;strong&gt;Freeze policy&lt;/strong&gt; in Bytesafe:&lt;/p&gt;

&lt;p&gt;✅ Guaranteed exact same versions when testing and building your applications&lt;/p&gt;

&lt;p&gt;✅ Deterministic and consistent results across all your environments such as Test, UAT and Production&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://bytesafe.dev/posts/freeze-registry-states/"&gt;This blog post&lt;/a&gt; also describes how to work with the &lt;a href="https://docs.bytesafe.dev/policies/freeze/"&gt;Freeze policy&lt;/a&gt; to achieve consistent tests and builds.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's your solution to this issue?
&lt;/h2&gt;

&lt;p&gt;I would love to hear what you think of this solution and how you avoid accidental updates today. I'd be happy to answer any questions you might have. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/bytesafedev"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xa6AP1T3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j3uehdo8j7i2g40bk382.png" alt="Follow Bytesafe on Twitter"&gt;&lt;/a&gt; &lt;a href="https://www.producthunt.com/posts/bytesafe?utm_source=badge-featured&amp;amp;utm_medium=badge&amp;amp;utm_souce=badge-bytesafe"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DhhoEKYZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://api.producthunt.com/widgets/embed-image/v1/featured.svg%3Fpost_id%3D300547%26theme%3Dlight" alt="Bytesafe - A better way to control your software supply chain | Product Hunt"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>npm</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>devops</category>
    </item>
    <item>
      <title>What are your top things you love ❤️ &amp; hate 💔 about the npm ecosystem?</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Tue, 22 Jun 2021 09:41:26 +0000</pubDate>
      <link>https://forem.com/danielp/what-are-your-top-things-you-love-hate-about-the-npm-ecosystem-42ag</link>
      <guid>https://forem.com/danielp/what-are-your-top-things-you-love-hate-about-the-npm-ecosystem-42ag</guid>
      <description>&lt;p&gt;Node Package Manager (npm) helps us a lot in terms of performance when building new awesome applications - so many packages available and ready to be used. But over time there are also a lot of things you wished could have been better...&lt;/p&gt;

&lt;h2&gt;
  
  
  So, what are the things you love, hate, miss, wished could be better when using the npm ecosystem?
&lt;/h2&gt;

&lt;p&gt;Write down your top thing!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>npm</category>
      <category>node</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Apply rules and automations to your npm registries</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Thu, 17 Jun 2021 10:03:49 +0000</pubDate>
      <link>https://forem.com/danielp/apply-rules-and-automations-to-your-npm-registries-41bl</link>
      <guid>https://forem.com/danielp/apply-rules-and-automations-to-your-npm-registries-41bl</guid>
      <description>&lt;p&gt;Most developers would rather be coding than spend time managing dependencies. To keep up with the fast releases proper tooling is a necessity.&lt;/p&gt;

&lt;p&gt;Manually monitoring dependencies for known vulnerabilities is both a time sink and a liability. Performing point-in-time checks will eventually mean you regret why you didn't do it automatically.&lt;/p&gt;

&lt;p&gt;Spending time making sure that all teams and systems only use the same approved dependencies, across different environments, is also neither productive or fun.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/danielp/how-to-use-secure-private-npm-registries-36m9"&gt;Managing dependencies securely and efficiently&lt;/a&gt; involves the need of a tool that offloads some of the work for you. So you can focus on other things - and avoid human error. &lt;/p&gt;

&lt;p&gt;Watch this video to learn how &lt;a href="https://docs.bytesafe.dev/plugins/" rel="noopener noreferrer"&gt;Plugins&lt;/a&gt; and &lt;a href="https://docs.bytesafe.dev/policies/" rel="noopener noreferrer"&gt;Policies&lt;/a&gt; in Bytesafe let you apply business rules and automations for your secure private npm registries - so you don't have to.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/6fqkKu51O94"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;🧑‍💻 Sit back, relax and let Byteasafe's plugins &amp;amp; policies do the work for you.&lt;/p&gt;

&lt;p&gt;🔍 &lt;strong&gt;Here are just a few use cases:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ Lock versions for a registry with &lt;a href="https://bytesafe.dev/posts/freeze-registry-states/" rel="noopener noreferrer"&gt;Freeze&lt;/a&gt; - making sure every user gets the exact same versions from the registry that you used for development - A powerful way to lock dependencies after development is completed, before passing it to QA/Testing or build systems.&lt;/p&gt;

&lt;p&gt;✅ &lt;a href="https://docs.bytesafe.dev/policies/block/" rel="noopener noreferrer"&gt;Block&lt;/a&gt; specific packages or packages with known vulnerabilities&lt;/p&gt;

&lt;p&gt;✅ &lt;a href="https://docs.bytesafe.dev/plugins/version-auto-increment/" rel="noopener noreferrer"&gt;Auto increment&lt;/a&gt; package versions on publish to the registry - so you don’t have to manually step the version before every publish&lt;/p&gt;

&lt;p&gt;✅ &lt;a href="https://docs.bytesafe.dev/plugins/forward/" rel="noopener noreferrer"&gt;Auto forward&lt;/a&gt; package versions to linked upstream registries. Storing maintainer tokens securely in Bytesafe + using &lt;a href="https://docs.bytesafe.dev/plugins/forward/" rel="noopener noreferrer"&gt;Forward&lt;/a&gt; plugins removes the need to share maintainer tokens (and avoid security risks).&lt;/p&gt;

&lt;p&gt;There is more to discover! &lt;a href="https://login.bytesafe.dev/signup" rel="noopener noreferrer"&gt;Give Bytesafe a try&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/bytesafedev" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3uehdo8j7i2g40bk382.png" alt="Follow Bytesafe on Twitter"&gt;&lt;/a&gt; &lt;a href="https://www.producthunt.com/posts/bytesafe?utm_source=badge-featured&amp;amp;utm_medium=badge&amp;amp;utm_souce=badge-bytesafe" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fapi.producthunt.com%2Fwidgets%2Fembed-image%2Fv1%2Ffeatured.svg%3Fpost_id%3D300547%26theme%3Dlight" alt="Bytesafe - A better way to control your software supply chain | Product Hunt"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>npm</category>
      <category>node</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Introduction to open source security in the supply chain e-book</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Thu, 10 Jun 2021 12:59:10 +0000</pubDate>
      <link>https://forem.com/danielp/introduction-to-open-source-security-in-the-supply-chain-e-book-8ok</link>
      <guid>https://forem.com/danielp/introduction-to-open-source-security-in-the-supply-chain-e-book-8ok</guid>
      <description>&lt;p&gt;Would you like to better understand what it means for your business to use open source npm packages and need a good summer read? 📖 🌞 &lt;/p&gt;

&lt;p&gt;It’s a simple fact that open source is everywhere and we all seem to have a never ending thirst for more of them.&lt;/p&gt;

&lt;p&gt;So, questions do need to be raised on what controls are in place for the open source components your team are using. To aid that discussion we have just published an e-book called &lt;a href="https://bytesafe.dev/ebooks/weakest-link/" rel="noopener noreferrer"&gt;Don’t be the weakest link in your software supply chain&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bytesafe.dev/ebooks/weakest-link/" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxh45cch272hoagqv4gns.jpeg" alt="Bytesafe E-book - Don't be the weakest link"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📘 Book chapters
&lt;/h2&gt;

&lt;p&gt;The book contains everything you need to know about controlling the open source code your business depends on, identifying the risks of the software supply chain and how to effectively manage them. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1fkykilfmtprice00li.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1fkykilfmtprice00li.png" alt="Bytesafe E-book - Don't be the weakest link Chapters"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Bytesafe
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bytesafe.dev" rel="noopener noreferrer"&gt;Bytesafe&lt;/a&gt; reduces the risk of businesses failing to keep track of components, their dependencies and open source licenses.&lt;/p&gt;

&lt;p&gt;The Bytesafe team has extensive first-hand experience on the challenges companies face in highly regulated businesses when managing and deploying open source code. &lt;/p&gt;

&lt;p&gt;If you have any questions or feedback - just drop me a message. I would love to hear from you!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bytesafe.dev/ebooks/weakest-link/" rel="noopener noreferrer"&gt;Download our free e-book&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/bytesafedev" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3uehdo8j7i2g40bk382.png" alt="Follow Bytesafe on Twitter"&gt;&lt;/a&gt; &lt;a href="https://www.producthunt.com/posts/bytesafe?utm_source=badge-featured&amp;amp;utm_medium=badge&amp;amp;utm_souce=badge-bytesafe" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fapi.producthunt.com%2Fwidgets%2Fembed-image%2Fv1%2Ffeatured.svg%3Fpost_id%3D300547%26theme%3Dlight" alt="Bytesafe - A better way to control your software supply chain | Product Hunt"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ebook</category>
      <category>npm</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How to use secure private npm registries</title>
      <dc:creator>Daniel Parmenvik</dc:creator>
      <pubDate>Thu, 10 Jun 2021 12:57:25 +0000</pubDate>
      <link>https://forem.com/danielp/how-to-use-secure-private-npm-registries-36m9</link>
      <guid>https://forem.com/danielp/how-to-use-secure-private-npm-registries-36m9</guid>
      <description>&lt;p&gt;Working with open source npm packages is so fast and easy that security and control is often pushed to the infamous &lt;em&gt;"some other time"&lt;/em&gt; -  or simply neglected.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;But why?&lt;/strong&gt; There are solutions that add security with almost no effort and without impacting developer performance! Watch the video below to see how easy it is.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Risks associated with using open source npm packages should not be overseen and the number of threats in the ecosystem only increases (like the much discussed &lt;a href="https://bytesafe.dev/posts/avoiding-dependency-confusion/" rel="noopener noreferrer"&gt;dependency confusion&lt;/a&gt;). Not to mention that the potential impact on your business is catastrophic. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To take back control&lt;/strong&gt; you should look into adding a private npm registry into your supply chain. And working with a private registry does not even have to impact your workflow. Simply configure the registry and use the private registry instead of using &lt;em&gt;registry.npmjs.org&lt;/em&gt; directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's a video&lt;/strong&gt; that shows you just how easy it is to work with secure private registries that are &lt;a href="https://bytesafe.dev/posts/secure-solution-to-dependency-confusion/" rel="noopener noreferrer"&gt;secure by default&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/JpctrWmVoFk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What is Bytesafe?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Want to block or quarantine packages that contain vulnerabilities? Need to make sure that your apps don’t depend on code that doesn't fulfill your business policies? Or maybe you’re looking for hosted secure private registries to be able to share packages and collaborate?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Inga problem"&lt;/em&gt;, as we say in Swedish = Not a problem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bytesafe.dev/" rel="noopener noreferrer"&gt;Bytesafe&lt;/a&gt; is a devtool that makes life easier to trust code you are dependant on by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Controlling&lt;/strong&gt; what packages and dependencies are being used in applications and securing workflows for both internal and external packages&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Knowing&lt;/strong&gt; what security and open source license issues exist in the code you depend on so that they can be remediated&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Protecting&lt;/strong&gt; the business from unintended packages entering the software development lifecycle (dependency confusion) - working like a dependency firewall&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://twitter.com/bytesafedev" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3uehdo8j7i2g40bk382.png" alt="Follow Bytesafe on Twitter"&gt;&lt;/a&gt; &lt;a href="https://www.producthunt.com/posts/bytesafe?utm_source=badge-featured&amp;amp;utm_medium=badge&amp;amp;utm_souce=badge-bytesafe" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fapi.producthunt.com%2Fwidgets%2Fembed-image%2Fv1%2Ffeatured.svg%3Fpost_id%3D300547%26theme%3Dlight" alt="Bytesafe - A better way to control your software supply chain | Product Hunt"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>npm</category>
      <category>javascript</category>
      <category>devtools</category>
    </item>
  </channel>
</rss>
