Disrupting supply chain attacks on NPM and GitHub Actions

(github.blog)

69 points | by nyku 5 hours ago

9 comments

  • alpineman 3 hours ago
    >> high-impact npm accounts are now put into a read-only mode for 72 hours when they change their email or use a 2FA recovery code. This delay allows maintainers time to respond and recover the account before their account can be used to start an attack.

    'what time shall we put here?'

    'what's the longest hangover you ever had?'

    'let's put 72 hours'

    • Waterluvian 2 hours ago
      A weekend plus a day to deal with things seems like a decent minimum duration when it’s somewhat arbitrary what the right number is.
      • datakan 2 hours ago
        I don't think so at all. People go on vacation all the time. This should be 30 days not 3.
        • Waterluvian 2 hours ago
          That's the usual runaway problem, right? Why not 60 then? People go on sabbaticals! etc etc.

          I feel like the only way to be wrong for this class of problem is to believe that there's a singular right answer. Just pick something reasonable (like how weekends are a fairly common thing, so don't make it shorter than 48 hours). Start there, then see how much of an issue persists. No matter what, at scale you'll find someone complaining that the number is too little, and people complaining that it's too much. Eventually you just have to tell the complainers to deal with it.

          • datakan 1 hour ago
            There is a big difference between 3 days when someone may be sick or traveling and not looking and 30 which aligns better with 99% of scenarios this may be an issue with. 3 days is absurd. Even password apps with kill switches will default to 7 days.

            Cyber attacks will frequently happen on a Friday just for this scenario, they anticipate no ones looking over the weekend.

            • tredre3 1 hour ago
              And 365 days probably aligns with 100% of scenarios. It doesn't mean it's a good idea, because the longer the delay is the more downsides you also get.

              Blocking a maintainer from pushing updates for a full month after changing their e-mail would be obviously absurd. So Github would have to add a way of enabling maintainers to super-uper-duper confirm the change and cut the delay short. Which is likely not currently possible, hence starting with a shorter delay.

        • Normal_gaussian 39 minutes ago
          It sounds like we should plot 'count of compromised repos' against 'time taken for maintainer to initiate a resolution', and pick something just after the inflection point.
        • normie3000 2 hours ago
          It's often not the maintainer that removes a poisoned release, it's the npm security team/tools. So unless the whole team takes a month off, we're all safe.
  • MSkill1 12 minutes ago
    I literally am reading this after setting GitHub actions five minutes ago to generate the APK version of my cross platform project for the first time. Great :\
  • summarybot 1 hour ago
    Github owns NPM. Github has unprecedented access to code analysis tools. Github can run static analysis on nearly everything. Introducing a cooldown period seems like the lowest tech solution to a technological problem I have seen in a longwhile.
  • skipants 1 hour ago
    One thing I don't quite get is how trusted publishing is supposed to be more secure. It still allows publishing if they pwn your workflow.

    Is it purely more secure because they can't exfiltrate your secret keys to publish again?

    I feel like if your workflow gets pwned you'd be rotating your keys anyways, so I'm not sure if the vendor lock-in is worth it.

    • pimterry 1 hour ago
      Trusted staged publishing helps a lot: you have to independently pwn the workflow _and_ then complete a separate 2FA flow as a maintainer. The workflow never sees any keys that can publish independently.
    • flyingshelf 1 hour ago
      Keys can be reused from anywhere. Trusted publishing means the attacker must trigger the specific workflow on GitHub, which is more difficult and leaves trace of actions on GitHub itself.
  • hncsiocp9x 3 hours ago
    Been quietly thinking this for years
  • torment-nexus 1 hour ago
    [flagged]
  • DiabloD3 4 hours ago
    [flagged]
    • theF00l 4 hours ago
      The job can require you to
      • DiabloD3 3 hours ago
        [flagged]
        • UqWBcuFx6NV4r 3 hours ago
          These comments should be removed r from HN, because they in no way actually add to the conversation. They aren’t intelligent, they aren’t insightful, they aren’t actionable, and they don’t invite a genuine reply. All you’re saying is that you happen to not use these technologies yourself – something that I’m sure is only by happenstance – and that you feel superior for it.

          This is a blog post by GitHub. what are you suggesting that these employees do? Simply ignore that they exist? Regardless of whether or not you use them, they still exist.

          • DiabloD3 28 minutes ago
            It very much is actionable.

            You might not know this, but the world of software development existed before NPM and Github, and it continues to exist after them. You are not beholden to either of them.

          • sieabahlpark 2 hours ago
            [dead]
          • anon48293 3 hours ago
            > This is a blog post by GitHub. what are you suggesting that these employees do? Simply ignore that they exist?

            The buggy, insecure feature that is GitHub actions? Yes, preferably so.

        • x86a 3 hours ago
          This is such a myopic take
        • baby_souffle 3 hours ago
          GitHub actions doesn’t really make you a js shop
    • rho138 4 hours ago
      > Opting out of toxic ecosystems is a valid option

      Quick, everyone break out the pitchforks for a valid analysis of a game! /s

  • pluto_modadic 2 hours ago
    the bare minimum award, for the only language and only registry where this regularly happens.