Zruty wrote:QUOTE (Zruty @ Aug 23 2010, 08:56 PM) 1. Only input map is stored on the server, nothing else.
2. The name of the remote file probably on the INPUTMAP_FILE constant, which is probably supplied by ASGS and is dependent on the callsign. Not sure about this though (hey, I'm not a source code magician, and c++ isn't even my 'native' language).
We need some clarification on what exactly the key for the storage is. The initial commit seems to use the callsign (without token or rank) in clear-text, and the additional commits just seems to add some obfuscation (not sure though, haven't looked at it closely). I don't see ASGS supplying anything but the callsign.
Zruty wrote:QUOTE (Zruty @ Aug 23 2010, 08:56 PM) 4. I personally think saving the input map remotely isn't that good thing.
I'm not sure on this. It's certainly nice not to have to reconfigure everything when you move to a different machine. Assuming the server-side storage is safe, I think this is a good idea.
But it's hard to do this safely without involving ASGS - maybe even impossible with the information Alleg currently gets from ASGS.
Zruty wrote:QUOTE (Zruty @ Aug 23 2010, 08:56 PM) Possible security issues:
1. If someone manages to reverse engineer, trace, or in other way crack ASGS, he'll be able to both get and set other people's input maps on the remote server. I think this is a minor matter, since the possible ASGS hacker will probably have own wider variety of destructive tools to annoy the community.
Only if there's some magic secret ASGS passes to Alleg for the purpose of storing the inputmap file. But if I read the code correctly, it's just using an obfuscated version of the callsign. No ASGS hacking is required to get/set anyone's input maps.
Zruty wrote:QUOTE (Zruty @ Aug 23 2010, 08:56 PM) 2. If someone is able to replace the remotely-stored version of the input map with another file, not necessarily an input map (for example, a trojan or a virus), it will be downloaded onto the target user's machine (I'm not sure if the file is deleted/replaced afterwards). Usually such malware requires user interaction to start working (i.e. run the file).
Thanks for pointing this out, in my previous post I completely overlooked the possibility for attackers to change some else's input map.
The input map is downloaded
only if the user presses the 'Load' button, so there's no way to mess up an existing Alleg installation - it's only a problem for people who use the feature (which they'll only do on new installations).
Replacing the input map with a *.exe virus/trojan would probably just crash Alleg (due to invalid input map) but not run the virus. However, if there's an additional security vulnerability (buffer overflow) in the input map loading code -- quite likely as it's MS code from pre-2000 -- then such a virus might run without user interaction.
Zruty wrote:QUOTE (Zruty @ Aug 23 2010, 08:56 PM) 3. If the 'cloud' server logs the network traffic, the information of how IP is bound to the callsign (or its hash) will be available to the cloud server owner.
Yes, but the same holds for the ASGS and game servers. Still, the number of servers that production alleg depends on should be only the minimum that's absolutely necessary.
So my point of view: Imago's current approach is unsafe. To do this correctly, the input map would have to be stored with the ASGS account, so that uploading/downloading the input map would be possible only after authenticating. Which isn't going to happen as I doubt TE will touch ASGS for such a low-priority feature.