9 ms·
Microsoft needs to stop signing kernel level anti cheats completely. They are always rootkits by design. No game should require a kernel driver.
by lawl 5y ago
Microsoft needs to stop signing kernel level anti cheats completely. They are always rootkits by design.
No game should require a kernel driver.
- cartoonworld 5y agoTalking out of school here, but games currently seem to require such low level hardware access that this is rendered impossible. No matter if your game has crappy memory management and the escalation exploit roots your XBOX, an update will quash that. But people are banking and buying/mining crypto and then launching fortnite or whatever. Game security is nuts. It's always been a training ground for RE/binary exploitation engineers, so thats a plus.
- the8472 5y ago> but games currently seem to require such low level hardware access that this is rendered impossible That doesn't seem plausible considering that a lot of games run under linux with wine/proton, so clearly they don't need direct hardware access.
- cartoonworld 5y agoI don't think it follows that because they can run on linux/wine compat they don't require excessive privs. Maybe low level hardware access is not the right term, versus excessive privileges that the hardware acceleration libraries require?
- ogurechny 5y agoHardware drivers that deal with hardware acceleration are written by hardware companies. Libraries and applications only call their functions as defined in the documentation. Game programmers in most cases have no clue about the low-level specifics of hardware that accelerate their games.
- sennight 5y ago> but games currently seem to require such low level hardware access... lol, no. The industry has converged on a small number of engines, which is why you see so many cross platform games - back in the day that usually required subcontracting out the task of porting. Also, what is it that you imagine they need to poke so deeply in hardware that they need to bypass the kernel?
- cartoonworld 5y agoGotcha, I suppose I was thinking about the hardware and other drivers. Games sometimes implement special audio, network, video stuff. Point taken, do you think there is any reason they can't run with locked down privileges or is it all anti-cheat?
- sennight 5y agoIt is all "anti-cheat". Many years ago gamedevs like John Carmack were no joke wizards pushing the envelope, which certainly required low level access. Today's gamedevs aren't doing that... not even close. Modern games are known for shamefully janky code - and it isn't motivated my performance, see the GTA json parsing travesty for example: https://news.ycombinator.com/item?id=26296339 https://news.ycombinator.com/item?id=26296339
- giobox 5y agoWhile there’s no question Carmack was an exceptional talent, let’s not forget the original Doom shipped with serious network killing bugs in 93: https://doomwiki.org/wiki/Broadcast_packet_meltdown https://doomwiki.org/wiki/Broadcast_packet_meltdown Making software is hard, I’d not be so quick to judge the GTA devs, especially when GTA games are massively larger development undertakings. Doom was made by a handful of people in less than six months - GTA most certainly wasn’t. There is such a vast difference in complexity I’m not sure there is much value in comparing. The entire doom source code is likely smaller than a single grand theft auto save file.
- 5y ago
- gmueckl 5y agoThis isn't the 80s or 90s anymore. Back then, pretty much every somewhat advanced game asserted full control over the computer hardware as the first order of business. Operating systems neither had the means to prevent this, nor did they have the right kinds of drivers in most cases. With proper protected mode operating systems that include usable driver interfaces, this is thankfully a thing of the past. Modern hardware and modern operating systems usually take care to ensure that any hardware acceleration features are exposed in a way that doesn't create security risks. And, unlike on consoles with known hardware, it doesn't make sense anymore to try to talk to PC hardware directly from a game because things like GPUs are so varied and have so much "secret sauce" these days that trying to create custom drivers is an exercise in futility.
- swebs 5y agoMicrosoft would not want to stop since it keeps users locked in to Windows. The majority of games now support Linux according to ProtonDB, but the few popular games that don't are almost always due to a kernel level anti cheat. https://www.protondb.com https://www.protondb.com
- belval 5y agoI love proton, I sure you like it too, but it's not an existential threat to Windows in any way. People always take the path of least resistance which is Windows on the laptop/desktop that they bought at Best Buy. They won't reinstall their OS because they don't know what it is.
- wyager 5y agoThey might buy a Mac, though. As far as evil software megacorps go, I kind of prefer people using Apple products to using MS products.
- okamiueru 5y agoHow do you feel about the monitoring of every executable you run, when and where?
- smokelegend 5y agoAre you suggesting that MS does this or Apple? Is this known behavior documented somewhere I can learn more about?
- okamiueru 5y agohttps://sneak.berlin/20201112/your-computer-isnt-yours/ https://sneak.berlin/20201112/your-computer-isnt-yours/
- lawnchair_larry 5y ago
- maccard 5y agoThe problem is the cheats use kernel drivers so the anti cheat providers have to to keep up. Edit: rather than downvoting can someone offer a reason as to why?
- Bancakes 5y agoBecause human moderation after an AI serverside filter is much more consistent and less desperate than solving the halting problem clientside 2 rings below your app's privilege level.
- maccard 5y agoCan you give an example of some games that take that approach that it works for? I'd also suggest that human moderation is definitely less consistent, and definitely less able to scale. Nobody is trying to solve the halting problem in the kernel either. If a cheat runs as a kernel level driver, and anticheat doesnt you've lost the battle already.
- Bancakes 5y agoCSGO and Overwatch come to mind. I watch a talk on the latter, how the devs transitioned and optimised their anticheat system. It makes sense the cheat I wrote would run as admin. It's my PC after all. I also don't have access to the server in any meaningful way and modify other people's data, either. It's a good trade-off. Devs can also write arbitrarily good statistical analyses for the game. It's their responsibility. The question is simple - is this person performing abnormally? Well, games gather tons of telemetry nowadays, and the harder-to-detect cheats like wallhacks or fluorescent player textures are also the least useful. I am a hard silver I in CSGO. With or without aids, when I see someone run around the corner, I'll duck and magdump. Any gold nova will overpower me either way.
- DizzyDoo 5y agoI do think you're correct, but one particularly sticky issue is what you do with all the subtle cheats. Rather than developing an exploit with wall-clip, radar, auto-headshots and so on - all obvious to a human moderator - what if you make one that just lowers recoil by a smidgen, 20% or so. If you're watching the game as a moderator you could never tell that's what's happening. Yet -20% recoil, especially for a competitive esports player, would be such a massive advantage as to make that player the best in the world, but a way that looks quite legitimate.
- meibo 5y agoIt also just keeps happening. A recent game(Genshin Impact) shipped with an Anti-Cheat driver that had unauthenticated read/write primitives via IPC for debugging and it's been abused since. It's a security theater.
- ryukafalz 5y agoWhoa, that's a really scary example that would be great to point people to to show why this stuff is so bad. Can you link to more info about this?
- canadianfella 5y ago> It's a security theater. Security theatre. Not a theatre.
- gene91 5y agoCan Microsoft revoke their signatures on kernel drivers? If so, why haven't they revoked Genshin Impact's anti-cheat driver now that it has been proven to be a vulnerability? Is there a technical reason, or purely business?
- aneutron 5y agoIt's a very difficult problem to solve. Once you sign something, it's by design impossible to repudiate that signature. That in turn means you need some other way of "revoking" or "repudiating" that signature. In the case of TLS for example, it's a certificate revocation list. I don't know if there's such a mechanism on Windows Kernel.
- wrren 5y agoLiterally no part of this comment is true. They’re not hidden and they’re not malicious. They’re also very much required, because a user mode anti-cheat is trivially circumvented by a kernel mode cheat. The only way to defeat cheats is to wage continuous war with them, adapting to their tactics and stamping them out. It’s like collecting trash; trash will keep accumulating, your goal is to keep homes and streets clean in spite of that.
- ithinkso 5y agoEvery part of that comment was true. They are rootkits with a non-hidden persona, they are not malicious unless it's worth being malicious. I don't give trash collectors access to my bank account so that they can better estimate the amount of plastic I'm about to produce and better prepare themselves to make streets even cleaner
- Spivak 5y agoThat’s such a weird point when people to complain about bots and cheaters in games a lot. It almost killed Fall Guys because games stopped being fun.
- nsgi 5y agoOr just accept the fact that you'll never completely stop people cheating? Have your server prevent obvious cheaters but maybe people should just accept that the only way to avoid people cheating against them is to only play with people they trust
- zdkl 5y agoThat wipes out any trust in public rankings and some very big games are entirely built around those. Not going to happen while competition is a major income source.
- feu 5y agoThat completely destroys a whole class of games. How do you suggest I get 60 of my friends together at once for a game of Apex Legends? You'll never completely stop people cheating, but that doesn't mean that game developers should just give up. Thankfully the people clamouring for less, rather than more, anticheat is relegated to a vocal minority.