Anti Cheat: Deep Learning to Detect Cheaters

Discussion in 'Spigot Plugin Development' started by ObnoxiousHacker, Jun 13, 2016.

  1. We are a group of machine learning researchers and for the past four months, we've been working on ways to identify cheaters. Specifically, we've been working algorithms in the field of Deep Learning, which are massive neural networks that can handle high dimensional data.

    I'm happy to report that with about a hundred thousand training examples we were able to achieve a prediction accuracy of 99.8% with 0 false-positives.

    Here is a short video we made that demonstrates the idea:



    Such algorithms have millions of parameters and are computationally expensive to work on Minecraft servers. We've solved this by outsourcing the computation to our own servers, on which we run highly optimized code.

    If you're a server owner with more than 50 players, it would be great if you could help us test this out before we can actually release it. The plugin itself is about 100kb and does not perform much computation itself. (The major work is handled by our servers)

    Any feedback or discussion is also appreciated.
     
    • Like Like x 1
    • Creative Creative x 1
  2. There have been like 5 of these concepts over the past few months, each prove nothing and show no code for verification. Believing you would only make me an idiot. Open source it. Also, nice cracked client.
     
  3. We're planning to almost completely open source this, but we need to make sure it works. PM me, and I'll hand you the plugin if you can help us.
     
  4. You shouldn't plan to open source it. It should just be open source. Why wait until it's perfect to make it open? Let everyone check it out and maybe people can even help out with mistakes and optimizing it if you allow pull requests and such. I'm really interested in AI, so I would love to check out the code.
     
    • Agree Agree x 9
  5. Neural Networks are susceptible to what are known as "adversarial examples": input data that has been calculated to produce an incorrect output. These examples can only be calculated if the cheater has access to the network itself. We only want trusted hands to have access to these for now. (Until we find a way to solve this problem)
     
  6. Why would that matter, if you open source it people can clone the repository off of github or bitbucket or wherever, and work with it on their own. How would a clone of the repository affect the main program?
     
  7. joehot200

    Supporter

    I, as an anti-cheat developer, am skeptical as to the realistic use of such a plugin on a large public server.

    I have tried a machine-learning check before. And I have found that it generally creates false positives. With lots of players with different skill levels and styles of play, a lot of statistics can be hard to measure and a lot of hacks can fly under the radar because using statistics alone it can be hard to separate a good player from a hacker.

    I am also sceptical about chucking stuff to a server. For a start, that is a lot of data - and many servers won't like that. Many server owners will dislike having information about their backend servers possibly stored on a machine too. And I actually see NO advantage to it.

    Apart from being a skeptic, then if you truly have done this (and are not a troll), then well done. I doubt it would actually get off the ground publicly, but then again I also said that aboug AAC.

    This is the #1 problem I found. Because you gather statistics from all players, you gather statistics from hackers too. Which raises the average.
     
  8. joehot200

    Supporter

    Just to point out, you at the moment sound like one of the hundred other nutters who claims to have made the "perfect anticheat" but has no proof of anything.

    I'm not saying you are - i'm just saying that you should get something tangible out there sooner rather than later.

    I wish you luck.
     
  9. I don't think you understand. If someone has access to the code, they can calculate subtle ways that will fool the Neural Network.
     
  10. If you're giving away the jar, it's one click away from having the source viewable anyways. Have fun trying to keep the neural network foolproof
     
  11. All ya need is a Java Compilier which are all over the web, downloadable and web base
     
  12. I really appreciate the feedback but we already have a tangible prototype with us and are willing to give it out for free to servers who approach us (like a closed beta test)

    Our algorithms are far from statistics, they're more like pattern matching in ways even we don't understand. These algorithms perform at super-human levels on recognizing images (a task that is extremely complex). It's like having a moderator who doesn't sleep.
     
  13. "Super-human". My belief in this project just decreased a thousand-fold
     
    • Agree Agree x 1
  14. The JAR does nothing but send data to our servers which run highly optimized code on GPUs. Our servers host the Neural Network, not the JAR.
     
  15. Say that to Microsoft Research, Asia (He et al.) who achieved super human accuracy on Image Recognition using Residual Deep Learning. https://arxiv.org/abs/1512.03385
     
  16. Release the source of the jar then. If it's so lightweight and unimportant surely you could put that on github
     
  17. One difference there. That's microsoft. You're not microsoft. They actually have the resources to make something that might qualify as super-human. You almost certainly do not
     
  18. And don't forget, hackers could also download it themselves, and as the owner of the server running the plugin would probably be in a fairly powerful position to manipulate the data that goes to the servers.
     
  19. Then opensource the JAR.
    Also, I'd like to see how your system copes with tens of thousands of servers sending data to your server.
     
  20. Sure, http://pastebin.com/yYqVw3wR
    (Apologies, our group mostly has Lua, Python and C++ programmers and we write very sloppy Java code)