in a well-tested piece of infrastructure 2. Make you aware of big bad dangerous world out there 3. Give you nightmare fuel to send to your boss as fuel to ask for more support for our work <div data-marpit-fragment>Too honest? Sorry. I'll just lean into #1 then 😅 </div> Samuel Giddins 4
or more weaknesses in a Product that can be exploited, causing a negative impact to confidentiality, integrity, or availability; a set of conditions or behaviors that allows the violation of an explicit or implicit security policy. Weakness: something bad Exploited: it's bad unintentionally! negative impact: what makes it bad allows the violation of an explicit or implicit security policy: it breaks a promise about how the Product works Samuel Giddins 10
in RubyGems before 0.9.1 does not check whether files exist before overwriting them, which allows user-assisted remote attackers to overwrite arbitrary files, cause a denial of service, or execute arbitrary code via crafted GEM packages. Samuel Giddins 16
root cause was CVE-2013-0156 aka the great YAML RCE vuln. Everyone was too busy fixing & verifying nothing was tampered with. And also rebuilding 100% of the RubyGems.org infrastructure. Ooops. Samuel Giddins 21
change Use trusted mirrors Use SHAs stored in the RubyGems.org database & database dumps Verify there were no (other) instances matching the pattern of the vulnerability No rogue YAML No published versions matching the bad pattern No failed requests matching the bad pattern Samuel Giddins 23
platform Access control bypass Using full-name collisions to yank other people's gems Abandoned email squatting Reset password without MFA Arbitrary YAML deserialization Samuel Giddins 29
to the Government’s ability to perform its critical functions. The development of commercial software often lacks transparency, sufficient focus on the ability of the software to resist attack, and adequate controls to prevent tampering by malicious actors. There is a pressing need to implement more rigorous and predictable mechanisms for ensuring that products function securely, and as intended. Samuel Giddins 35
performs functions critical to trust (such as affording or requiring elevated system privileges or direct access to networking and computing resources) — is a particular concern. Accordingly, the Government must take action to rapidly improve the security and integrity of the software supply chain, with a priority on addressing critical software. Samuel Giddins 36
RubyGems have been critical commercial software, according to the US Government <div data-marpit-fragment> How do we deal with this reality? </div> Samuel Giddins 37
bug bounty program Each report takes time to triage Some reports require a lot of testing 64 real issues fixed So, so, so many reports that are... <span data-marpit- fragment>useless</span> Samuel Giddins 38
site getting so many 500s right now? Why am I getting paged? Why is there one IP making 10k requests per second? Why is the site down? Oh, a security researcher is literally hitting every endpoint for every gem on the whole system Added a missing index, asked the researcher to use the DB dumps instead Samuel Giddins 42
indexed Full-text search File-level diffs between versions Fast response to xz Search every gem for anything related to xz or liblzma Samuel Giddins 43
via HackerOner hackerone.com/rubygems [email protected] 24/7 oncall rotation Get in touch privately if you suspect there's a vulnerability in Bundler RubyGems.org RubyGems Report issues with individual gems to their authors Samuel Giddins 44
Central Shopify $1 million over 4 years to support the security & reliability of RubyGems & RubyGems.org Directly funds Open Source team work German Sovereign Technology Fund €863,000 over about 2 years Funded general maintenance & security-focused improvements Samuel Giddins 48
Central OpenSSF Alpha-Omega $100,000 security audit $150,000 to add organizations to RubyGems.org AWS Credits Sponsor my role as Security Engineer in Residence Pay for me to be here today! Samuel Giddins 49
you, your companies, and security-minded organizations like the German government (STF), OpenSSF (Alpha-Omega), AWS, Shopify, and more. Samuel Giddins 52