Confusion of dependencies. How I hacked Apple, Microsoft and dozens of other companies

Since I started learning to program, I admire the level of trust we put into a simple command like this:





pip install package_name
      
      



, Python, , . , .





, , — Node npm



npm, pip



Python PyPI (Python Package Index), gems



Ruby … RubyGems.





, , , , . ?






, .





, , , . , typosquatting —  — .





, .





PayPal 2020 , Node.js, GitHub.





PayPal, package.json, -,  — npm, , , PayPal. npm.





, , , :





  • npm ? , PayPal ?





  • ?





  • , ?





  • ?





, .





«» Node npm , « » , . - , PayPal, , .





, , , , . , .





« DNS»

, npm , Node, , , preinstall.





, , . IP- , , , .





: ?





, , , DNS — .





DNS , . DNS-, . , , , .





,

, , .





. Python, Ruby, PyPI (Python Package Index) RubyGems .





, , .





, , , GitHub,  — , , — -.





, , ... JavaScript.





, package.json JavaScript, , . require() . Apple, Yelp Tesla — , .





2020 , @streaak , , , JavaScript, npm. .





.





, , , , : , , , , .





, , 35 , . 1000 , , , .





JavaScript , 75 % npm, , Python Ruby . , gem Ruby, , RubyGems.





 — Giant Shopify, gem Ruby shopify-cloud , , . Shopify , 30 000 .





30 000 Apple , Node, npm 2020 , . Apple, Apple ID.





, , , Apple ID, Apple , , :





, , .





Apple Apple npm. , , .





npm, , , , .





, PayPal, ? , 30 000 . , , « ».





Netflix, Yelp Uber.





« , »

« »,  —  — : ? ?





, .





, Python, — , -,  « » --extra-index-url. , pip install library, , , , , pip , :





  • library () ;





  • library (PyPI);





  • . , .





library 9000.0.0



PyPI .





, GitHub --extra-index-url , , , , Microsoft .NET Core. , , , .NET Core, , .NET.





Ruby gem install --source



, , - .





, --extra-index-url



--index-url



, « » .





JFrog Artifactory, , , «» , . , Artifactory , , . .





JFrog, , , « » , , .





Microsoft Azure Artifacts. , « ». , Azure Artifacts, , , Microsoft Office 365, Azure 40 000 .





Microsoft 3 Ways to Mitigate Risk When Using Private Package Feeds.





?

, , , -, .





, , , , .





, , , , .





. « » . - — , «», .





, :





  • Data Scientist





  • Data Analyst





  • Data Engineering









  • Fullstack- Python





  • Java-





  • QA- JAVA





  • Frontend-









  • C++





  • Unity





  • -





  • iOS-





  • Android-









  • Machine Learning





  • "Machine Learning Deep Learning"





  • " Data Science"





  • " Machine Learning Data Science" 





  • "Python -"





  • " "









  • DevOps








All Articles