• @[email protected]
    link
    fedilink
    89
    edit-2
    7 months ago

    What makes this even more sneaky is that JetBrains has a theme called “Darcula”.

    So, with a wider generic theme called Dracula and themes that duplicate JetBrains Darcula theme, it is no surprise that “Darcula Official” is being installed.
    It’s more than just a typosquat

    Edit:
    But why can a theme make web requests?!

    • @[email protected]
      link
      fedilink
      637 months ago

      But why can a theme make web requests?!

      Because we live in a broken world and nothing matters.

      On a more serious note, it’s a pretty horrifying misfeature. What’s even more worrying is that by all appearances Microsoft doesn’t give a shit, if they apparently didn’t even bother removing the malicious extensions that were reported. Not that I’m surprised, but still.

    • @Kuinox
      link
      97 months ago

      It’s not a theme here, it’s an extension.

      • @[email protected]
        link
        fedilink
        127 months ago

        I think that’s how themes are distributed for VSCode, right?
        With VSCode, everything is an extension.
        But the vscode marketplace seems to have filters for themes, so there must be some way to differentiate them.

        I think extensions need a permissions system

        • Tekhne
          link
          fedilink
          167 months ago

          You declare it in the package.json as a category when publishing. It’s completely self-selected with no oversight, review, or enforced permissions.

        • @Kuinox
          link
          37 months ago

          You can install themes directly from the theme selector.

          • NekuSoul
            link
            fedilink
            57 months ago

            Even worse, it also previews the theme when selected. I hope that the logic they use for that feature works in a simpler way.

            • @Kuinox
              link
              37 months ago

              I checked the logic and there is no rce.

  • @Kuinox
    link
    477 months ago

    Fake news headline. There is no virus installed on millions of computer.
    An extension typosquatting an extension with million of install managed to be installed a few hundred of times.

    • Tekhne
      link
      fedilink
      387 months ago

      I believe they’re referring to lower down in the article, where the researchers analyzed existing extensions on the marketplace:

      After the successful experiment, the researchers decided to dive into the threat landscape of the VSCode Marketplace, using a custom tool they developed named ‘ExtensionTotal’ to find high-risk extensions, unpack them, and scrutinize suspicious code snippets.

      Through this process, they have found the following:

      • 1,283 with known malicious code (229 million installs).
      • 8,161 communicating with hardcoded IP addresses.
      • 1,452 running unknown executables.
      • 2,304 that are using another publisher’s Github repo, indicating they are a copycat.
      • @Kuinox
        link
        47 months ago

        If you look at the code of one of the “malicious code”, it hit a … local IP, not a remote one.

          • @noobface
            link
            77 months ago

            We’re seeing connections from IP addresses that aren’t even routable on the internet. We’re compromised. Time to format.

    • @[email protected]
      link
      fedilink
      English
      217 months ago

      I wouldn’t be so quick to write it off.

      It’s a proof of concept showing the weaknesses in Microsoft’s vetting process for extensions published on the store. They then used the process to get pseudo-malicious code inside hundreds of organisations (not hundred of installs) some of which are high profile.

      • @[email protected]
        link
        fedilink
        37 months ago

        Microsoft doesn’t have a vetting process for publishing extensions in the store. Maybe the failure is that people assume they do?

          • @[email protected]
            link
            fedilink
            1
            edit-2
            6 months ago

            Maybe, but I think the only app store that does vet apps is the Apple one, so that should be the default expectation.

            And I think even they wouldn’t manually look for something like this. They’re mainly concerned about people breaking the commercial rules.

      • @Kuinox
        link
        -4
        edit-2
        7 months ago

        inside hundreds of organisations (not hundred of installs)

        At the time of the article, the extension listed around 300 hundred installation on the VS marketplace. There is a lot of bots downloading packages, one extension i contribute to, and nobody use it except 3 peoples, have been indicated to be downloaded 238 times.

        If you look at the number of extensions available on the vscode marketplace, and the false positive they listed as “malicious code” (read the code attentively), I’m sure my own extension will show up in their “malicious code” (it isn’t)

      • @Kuinox
        link
        -37 months ago

        They made themselves the extensions.
        If you are talking about the other reverse shell, it hit a local IP address.

        • @[email protected]
          link
          fedilink
          English
          47 months ago

          True, it’s a private (not local) IP. It could easily have connected to a remote system, as their proof-of-concept did.

          This code execs cmd.exe and pipes output to and from a hardcoded IP. That’s pretty weird. What’s running on that IP? How does the extension know something is there?

          It looks like VS Code has no review — human or automated — or enforced entitlement system that would have stopped this or at least had someone verify it was legit.

          • @Kuinox
            link
            -27 months ago

            Thing is, tons of code extensions have an RCE in one form or another, but they always hit a localhost, or configurable IP. How do there automated analysis did any difference ?
            Tons of extensions summon the cmd to summon the language devtools, their automated analysis flagged tons of package and they infer millions of infeections from that.

              • @Kuinox
                link
                27 months ago

                Damn now I noticed i did tons of mistake/types there ^^'.

      • @[email protected]
        link
        fedilink
        127 months ago

        Except their summary is wrong. The researchers went on to search other extensions for known malicious code, and found it in thousands of extensions with tens of millions of total installs.

        • @Kuinox
          link
          -47 months ago

          I hopped people here would notice that their “malicious code” detection is totally bogus when the malicious code highlighted hit a local IP address.

          • @[email protected]
            link
            fedilink
            27 months ago

            Good point. That was in the “static IP” category and not counted in the 200+ million install “malicious code” category, though. It could be a warning sign of false positives, but the example was such a small snippet it could also be opening after a VPN is established. That example was supposedly part of code that opens a connection for shell access from the other end, but without more details it’s not really possible to say.

            • @Kuinox
              link
              -17 months ago

              Tons of devtools summons cmd.exe and do networks. Their claim is that more than 10% of the vscode marketplate is malicious package (i just divided the number of extensions they says is malicious, by the number of extensions)

    • @laughterlaughter
      link
      -17 months ago

      Did you really have to use that stupid “fake news headline” phrase? Gross.

  • @[email protected]OP
    link
    fedilink
    English
    447 months ago

    All malicious extensions detected by the researchers were responsibly reported to Microsoft for removal. However, as of writing this, the vast majority remains available for download via the VSCode Marketplace.

    Ah, the Microsoft tradition of always having the wrong priorities.

    • plz1
      link
      English
      97 months ago

      They didn’t put “AI” in the subject line of the emails, so Microsoft doesn’t care…

    • @[email protected]
      link
      fedilink
      English
      3
      edit-2
      7 months ago

      Ah, the Microsoft tradition of always having the wrong priorities.

      I wouldn’t be too hard on Microsoft. The requirement to curate public package repositories only emerged somewhat recently, as demonstrated by the likes of npm, and putting in place a process to audit and pull out offending packages might not be straight-forward.

      I think the main take on this is to learn the lesson that it is not safe to install random software you come across online. Is this lesson new, though?

      • @[email protected]OP
        link
        fedilink
        English
        37 months ago

        I think the main take on this is to learn the lesson that it is not safe to install random software you come across online. Is this lesson new, though?

        I think people often have a vaguely formed assumption that plugins are somehow sandboxed and less dangerous. But that all depends on the software hosting the plugin. There was a recent issue with a KDE theme wiping a user’s files which brought this to light. We can’t assume plugins or themes are any less dangerous than random executables.

        • @[email protected]
          link
          fedilink
          17 months ago

          Hold them all to account, no single points of failure. Make them all responsible.

          When talking about vscode especially, those users aren’t your mum and dad. They’re technology professionals or enthusiasts.

          With respect to vendors (Microsoft) for too long have they lived off an expectation that its always a end user or publisher responsibility, not theirs when they’re offering a brokering (store or whatever) service. They’ve tried using words like ‘custodian’ when they took the service to further detract from responsibility and fault.

          Vendors of routers and firewalls and other network connected IoT for the consumer space now are being legislatively enforced to start adhering to bare minimum responsible practices such as ‘push to change’ configuration updates and automated security firmware updates, of and the long awaited mandatory random password with reset on first configuration (no more admin/Admin).

          Is clear this burden will cost those providers. Good. Just like we should take a stance against polluters freely polluting, so too should we make providers take responsibility for reasonable security defaults instead of making the world less secure.

          That then makes it even more the users responsibility to be responsible for what they then do insecurely since security should be the default by design. Going outside of those bounds are at your own risk.

          Right now it’s a wild West, and telling what is and isn’t secure would be a roll of the dice since it’s just users telling users that they think it’s fine. Are you supposed to just trust a publisher? But what if they act in bad faith? That problem needs solving. Once an app/plugin/device has millions of people using it, it’s reputation is publicly seen as ok even if completely undeserved.

          Hmm rant over. I got a bit worked up.

    • @[email protected]
      link
      fedilink
      English
      67 months ago

      I remember seeing a lot about activeX controls as a kid but not understanding them much. As an adult reading this I was like “were they a way to run arbitrary code on a user’s computer?”

      Yes, they were a way to run arbitrary code on a user’s computer.

    • @[email protected]
      link
      fedilink
      English
      27 months ago

      Remembering ActiveX Controls, the Web’s Biggest Mistake:

      Running JavaScript everywhere is looming as one of the biggest screwups in InfoSec. What do userscript extensions like Grease monkey teach us?

  • @AIhasUse
    link
    177 months ago

    Is there a list of the malicious extensions? What should be done if we ha e malicious ones installed?

    • @tsonfeir
      link
      57 months ago

      It sounds like it’s mostly typosquatting. So just check to be sure you didn’t install something like Pretier instead of Prettier

    • @[email protected]
      link
      fedilink
      37 months ago

      The researchers are releasing the scanning tool they created for people to be able to run against their own installs.

    • @[email protected]
      link
      fedilink
      27 months ago

      As far as I know, there is no such list (yet).

      What should be done:
      Escalate it to the people responsible for IT administration & security in your company or institution. They’ll deal with it.

      But the default step if you suspect of being infected is not to use the device at all until you got a green light for it from the security/admin folks. Power down, disconnect from any networks, either via physical cables or wireless, unplug external storage devices and wait for further info.