• lemmyvore@feddit.nl
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    33
    ·
    9 months ago

    I still don’t understand why Windows doesn’t use .exe whitelisting instead of bothering with endless blacklists and heuristics and antiviruses.

    On any given system there’s a handful of legit .exe while out there there’s like a billion malware .exe, and more created every minute.

    Or at least switch to an explicit “executable” flag like on MacOS and Linux.

    • starchturrets@feddit.de
      link
      fedilink
      English
      arrow-up
      17
      ·
      9 months ago

      Windows has both WDAC and Applocker for allowlisting, not just for exes, but stuff such as powershell scripts and what drivers run in the kernel as well.

      https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/

      In it’s strongest form (a signed WDAC policy) even admin access can’t easily override it, and a well written policy can even enforce stuff such as downgrade protection (example: only allow firefox.exe signed by Mozilla at or above a certain version) which prevents an attacker from loading older versions of an executable.

      The problem is that it’s not so easy to use in practice - an installer will often drop loads of unsigned files. Tor Browser ironically enough is a prime example, and any WDAC policies allowing it have to fallback on hash rules, which are fragile and must be regenerated every update, or filepath rules which are not so robust.

      Microsoft is trying to make allowlisting more accessible with Smart App Control, which runs WDAC under the hood. It does save the hassle of managing one’s own policies (and also blocks certain filetypes like lnks commonly used for malware), but it is not very customizable.

    • PoolloverNathan@programming.dev
      link
      fedilink
      English
      arrow-up
      3
      ·
      9 months ago

      From my experience, Windows by default completely blocks non-Microsoft-verified .exes. It’s called S mode and usually requires a Microsoft account to exit.

      • brsrklf@jlai.lu
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        9 months ago

        Do you mean that it’s enough just to be on a microsoft account? On 10, I didn’t technically do anything to exit that and I just have an annoying popup first time I’m using an unverified app. I can just allow them.

        • PoolloverNathan@programming.dev
          link
          fedilink
          English
          arrow-up
          2
          ·
          9 months ago

          You need to “download” normal mode from the store, which requires a Microsoft account to use. All of the W11 computers I’ve gotten came in S mode.

    • DeathsEmbrace@lemmy.world
      link
      fedilink
      English
      arrow-up
      21
      arrow-down
      25
      ·
      edit-2
      9 months ago

      Because it makes it the easiest thing to spoof an .exe which enables attacks of which you will never get out of. A legit.exe vs a spoofed legit.exe will be the exact same in every way except the coding in spoofed fucks you.

      Edit: you’re trading security risk for security risk that makes it easier to hide. Not worth it.

      Edit 2: their is nothing 100% secure MD5 and Sha1 are both spoofable. Checksums and anything is capable of being man in the middle. You people act like you just found something that can’t be broken. This is the real world the moment you switch most black hatters and white hatters will switch too…

      • CheezyWeezle@lemmy.world
        link
        fedilink
        English
        arrow-up
        31
        arrow-down
        2
        ·
        9 months ago

        I’m not sure that these things work the way you think they do… an antivirus wouldn’t just look for the name of an executable to be “legit.exe” but rather would look at what the program calls itself in it’s manifest, compute the hash for the executable binary file, and compare that hash against a database of known good hashes. If the contents of the executable compute a hash identical to the known good hash, then you know the contents of the executable are clean.

        • gronjo45@lemm.ee
          link
          fedilink
          English
          arrow-up
          1
          ·
          9 months ago

          Still getting into programming and having a bit of trouble understanding what a “manifest” is. What does this technically entail? Are “manifests” implemented differently by PL or OS?

          • CheezyWeezle@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            9 months ago

            The manifest (at least how I am using the term) is whatever metadata a file has, and the format and location of this metadata can differ between operating systems. Usually the manifest is generated by the operating system based off of header data from the file itself, and details about the file that the operating system can deduce, such as file size, origin, location, file type, etc. In Windows you can view this info by right clicking/opening the context menu on any file and selecting “Properties”, on macOS by opening the context menu and selecting “Get Info”, and on other OSes such as linux/freeBSD it will be something similar.

            There are other usages for “manifest” depending on the context, for example a manifest.xml would be something a developer would include with an android app that has configuration settings and properties for the app.

      • ඞmir@lemmy.ml
        link
        fedilink
        English
        arrow-up
        19
        arrow-down
        2
        ·
        9 months ago

        How is this getting upvoted. This is ridiculous garbage, every exe whitelist would obviously have checksums attached, not just a filename.

      • xantoxis@lemmy.world
        link
        fedilink
        English
        arrow-up
        10
        ·
        9 months ago

        Please don’t reply to comments when you’re talking out your ass, that doesn’t help anyone. You don’t know wtf you’re on about, at all.

      • starchturrets@feddit.de
        link
        fedilink
        English
        arrow-up
        5
        ·
        9 months ago

        Not really, WDAC doesn’t usually just look at the filename. It can look at the certificate it was signed by, or fallback to using hashes.

      • CheezyWeezle@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        9 months ago

        Lmao your edit 2 is completely silly. SHA-256 is what would be used for checksum verification, and SHA-256 is pretty much collision resistant, and even then if two files computed the same hash they would have such different contents/properties that it would be obvious they are not the same file. MD5 and SHA-1 have been phased out for any serious usage for a while now.

        Seriously tho, if you don’t know what you are talking about you should probably stop making a fool of yourself