-
Notifications
You must be signed in to change notification settings - Fork 983
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update roadmap with a clearly articulated security model & strategy #5718
Comments
This evening I gave a talk to some students in an application security class, and figured my notes could be used to start addressing this issue. The section headings are borrowed from the textbook The art of software security assessment: identifying and preventing software vulnerabilities by Mark Dowd (Chapter 4. Application Review Process):
General application purpose: What is PyPI/Warehouse?
Fundamental security expectations: Users and what they can do How do you become one of these kinds of users? This is defined by project namespace. Initial project Owner is the first person to upload a project to PyPI with that project name. What can these different owners do? See #5863 . But also! ALL users, including people who are not logged in, can read the records of package activity. Assets and entry points
Components and modules https://warehouse.readthedocs.io/application/ goes over this a bit.
Major trust boundaries
|
There are a few items in #2794 (comment) that should also be in such a document, such as release immutability. |
In this discussion thread, @tiran says:
and Donald Stufft notes,
I think documentation of the answers to those questions ought to be incorporated into the documentation push @glyph is suggesting. |
Thanks @brainwane My thought provoking, inconvenient, and brutally honest opinion is: PyPI won't be able to deliver this in it's current shape and design. Sooner or later we have to consider a different model that works more like current app stores or Linux distributions. I'm talking about curated content. I have been thinking about the matter for a while. All I have so far is a half-baked, handwavy proposal of a three layered index:
Layer (2) should get rid of typo squatting. Layer (3) requires considerable effort but might be a way to generic revenue to support maintenance of PyPI and its tooling. |
PyPI is a publishing platform, not a curation platform, and building a language specific curation service doesn't make sense. It's unfortunate that Red Hat chose not to fund further work on https://fedoraproject.org/wiki/Env_and_Stacks/Projects/SoftwareComponentPipeline, but that's still well outside the scope of PyPI, and it's honestly well outside the scope of the PSF as well. PyPI's job is to make sure that users can verify that what they installed is what the publisher uploaded. Determining whether or not a particular publisher is trustworthy is a whole different story, and the onus for that will always remain primarily on consumers. |
What's the problem this feature will solve?
Right now, PyPI has a way to report a security issue, but no clear description of what a "security issue" might be. Efforts like #5567 will improve the security of the site, but to what end?
Meanwhile, attacks against the open source supply chain are escalating, and more typo-squatting malware gets posted to PyPI every day.
Describe the solution you'd like
The text was updated successfully, but these errors were encountered: