Menu
Sign In Search Podcasts Charts People & Topics Add Podcast API Blog Pricing

Nicholas Zakas

๐Ÿ‘ค Speaker
455 total appearances

Appearances Over Time

Podcast Appearances

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

Yeah, so like ESLint, which I help maintain, over 200 million downloads a month.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

And we have had from time to time these very mysterious pull requests that show up.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

where all it is is somebody changing a dependency with no description or anything.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

And when we ask them, hey, what are you trying to do on this?

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

What's the point of this pull request?

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

It doesn't happen a lot, but it's happened frequently enough

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

that it's always felt to me like a penetration test to see how easy it would be to land a pull request on ESLint because it's downloaded so much.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

And knowing that it's going to go out basically immediately to all kinds of CI systems and personal laptops and what have you, we're always very, very careful about changing dependencies and

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

thinking about which dependencies you want to add into the ESLint package JSON file.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

Because there is a big responsibility when you have a package that's downloaded so frequently by so many different people.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

And it just kept coming back to like, no matter what I'm doing, no matter what security practices we're putting into place,

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

it seems like there's always some way for somebody to get in and cause trouble.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

And we did have, I want to say, maybe nine or ten years ago, we did actually have a compromised package get into ESLint, but it was one of our own packages, and it was kind of traditional.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

Somebody had reused their credentials on another site.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

That site had been hacked.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

And they ended up having their NPM credentials stolen as a result.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

And then they could publish ESLint packages using that.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

After that, we changed so that nobody's individual NPM account has published rights for ESLint packages.

The Changelog: Software Development, Open Source
Securing npm is table stakes (Interview)

But we're still in the situation where we use so many dependencies, and not to mention dependencies of dependencies,