Hi all,
first of all always nice to see people care about security
Of course development does not work like we have a switch somewhere saying "Prevent all cheating / hacking" that we just never cared to turn on because we hate everyone.
That said, every game has always been and will always be prone to cheating. Even big companies which spent millions of bucks into fighting it, like Blizzard (not Activision Blizzard, haven't been following their activities for a long time anymore), never were able to fully stop it from happening. Even games like WoW that are mostly server authoritative, which makes it a lot easier to fight cheating, have not been able to fully prevent it.
What we currently have in place is for the most part EAC, preventing users from modifying their game client. So unless someone actually bypasses their protection - and I'm currently not aware of any tool successfully doing so - we have to assume the client does nothing we don't allow it to. So for example forging wrong netpackets is not plausible on EAC protected servers. Of course if anyone becomes aware of any bypass that actually works ... please report it (either to us or directly to EAC / Kamu). That's the only way such things can be fixed.
If you run a server *without* EAC in place *nothing* is ever going to stop client side cheating. Thinking that testing for a client's "fly mode switch" (if we had one that was transferred by default) would help anything is wrong. If you aren't totally dumb/lazy as a hacker you'd simply make it so that such a flag would not be reported to the server. Same for checking player's y-coordinate. If I was hacking my client I would simply send the terrain height as my position's y to the server while locally flying well above / below ground. So, relying on *any* data coming from a client that can not be considered unmodified (through means like EAC protection) is not helping to fight cheating on a server. (Which is also the reason as to why we do not support client side code mods yet, as that takes more measures to make sure they can't be abused for cheating)
The server on the other hand is fully in the hand of whoever runs it so it can be used to cheat by the owner. Which means as a user I have to somewhat trust the admins that they don't abuse their power. But that's how it always will be for public run servers, no way to stop that part.
The third major component involved is the network between the two first parties. And yes, people who do have the knowledge could use that to achieve some stuff they should not be able to. Haven't looked at the network protocol in some time, so can't say if just injecting packets would work without any issues, changing them on the other hand is pretty much a given. Using this to gain advantages for yourself should be possible, running commands on the server definitely is not though. We're going to look into closing up that side of things though if it's actively being exploited by now.
In general: If you know of any publicly available cheats (e.g. exploits without using specific tools) or hacks (tools modifying the game while running EAC, tools for changing / injecting network traffic etc) report them. That way we can investigate them and get things fixed.
Now for some responses to more specific talks in this thread... (Sorry for not using proper quotes, the forum software does not seem to let me use bb-code and making a big post with multi-quotes gets annoying here

)
@giKoN
Assemblies are barely checked for their individual operations [...]
Not sure if that's what you mean, but making sure the assemblies are not modified is exactly what EAC does.
[...] FlyMode is client side only, NoCollision is client side only. The worst part is, there are no back checks and the servers do not request updates to confirm states with clients. [...]
As stated above, even if those things were reported to the server it would not help. People who can enable those modes will also be able to prevent those states from being reported to the server.
Another server tonight has had its serveradmin.xml corrupted and emptied out.
You can as client already interact with serveradmin xml with basic commands, admin add, ban add etc.. You can thus also send a corrupt netpackage to alter the serveradmin.xml in a way that it gets corrupted and regenerated fresh without entries is my guess.
I'd really like to see an example of that. Not saying there can't be bugs in the code making this possible, but not aware of anything yet. The admin data is managed by the server, the clients can only interact with them through the means of the respective commands (admin, ban, etc). Running such commands on the server is protected by the permission levels of the users vs the commands. Now, if an admin missed that lower number means higher access level and e.g. switched the two around (e.g. perm level for "admin" = 1000, perm level of regular users = 0) it would mean everyone could access this data. But I doubt that's the case as it's not the defaults and admins are generally aware of that stuff when looking at the example and defaults. (PS: Running commands on client side, which is probably what some people here are talking about, won't affect the server's admin settings)
@Grandpa Minion
[...] hackers have figured out how to access commands to control a server client side and is such a threat they now have the ability to ban who ever they wish, corrupt current admin files and permissions.
As stated above for giKoN and in the introducing parts, I don't see this happening. But I'll gladly look into this if you can provide more information
@giKoN
[...] please keep in mind that it is also possible to spoof steam id's on entry.
Any proof on that one? This is should be fairly impossible thanks to the way Steam authentication works.
@CH1LLV1LLE
I promise this is not some attempt to discredit you, like I said before, I know with 100% certainty that it is you mod that has exposed the admin console to any player in the server and not just in a little way, they have full access to everything an admin could do. See attached for proof.
Not seeing any attached proof. Though what I can state: I looked at the code for that mod (thanks @giKoN !) and unless giKoN removed parts that were responsible for such issues (and I highly doubt that) there's nothing in that mod that interferes with the way the in-game console works.
@meganoth
[...] and replace the own steam-id with that of the admin in any package that sends a console command.
No, the console does not work like that. The sender of a console command is identified by his connection, and this connection is only accepted after succesful Steam authentication. So you can't just alter data on the command package to get yourself authenticated for commands.
Now, *if* you were able to figure out the connection details (source IP + port at least) of another existing connection of an actual admin who's online you *might* be able to fake a package you send to look like it came from the admin. But unless you're on the same local network that's like arguing the NSA was hacking 7DtD because they don't like us
If you or parts of your message didn't get mentioned explicitly above and isn't covered with what's here (or what I said sounds wrong) feel free to bring it up. Also note that repro steps, information on tools etc help incredibly with getting stuff more secure.
Cheers,
Chris