I've been poking my nose in mobile software development since 2000, starting on what was then the ER5 and Ericsson's R380. Since then I've been doing a bit of everything on the S60 Platform, from learning its bits and pieces to helping others find their way trough the maze.
ltomuta | 21 February, 2009 11:00
The blogosphere is buzzing with a hot subject: a worm attacking Symbian smartphones. The creature has a name too, not a latin one as the living worms but a rather techie one: Trojan:SymbOS/Yxe.A. Or, among its friends, "Sexy view".
You can read Gabor Torok's analysis of the incident at Mobile worm, Yxes.A - an analysis but in this post I want to challenge you with a more hands-on task: how to protect yourself from this worm?
We all know (I hope) the good old security advices published by Nokia at http://europe.nokia.com/get-support-and-software/learn-how/security/your-device:
For the sake of this post however, let's pretend that we want to ignore these advices and instead ensure that we can install any sis file that finds its way to our devices ... except this virus, of course.
So, given that the info we have about the virus is whatever we can find from this picture from F-Secure's blog,
the requirement is to design a component that blocks the installation of the worm without affecting any other application. If multiple solutions are proposed the winner will be the one with the simplest design and less Platform Security capabilities requirements. Only public APIs can be used for creating the solution.
Do you have the answer? Post it here or, if it has any attachments, send it to ltomuta@ovi.com
Fine print:
Since the task is trivial there will be no prize in this challenge, except of course for the antivirus protection you will implement for yourself :)
Symbian C++ |
Next |
Previous |
Comments (6) |
Trackbacks (0)
ltomuta | 21/02/2009, 15:00
... I was hoping for some more "creative" solutions first :) Obviously your solution is *the* trivial solution and it is also effective against this particular threat since I don't expect a new signed release of it soon.
Sorcery-ltd | 21/02/2009, 15:21
Without the SID, or some pretty powerful capabilities I don't think there are many interesting alternatives. It'd still be good to know if others have some more "creative" solutions though.
tote_b5 | 21/02/2009, 17:07
Lucian,
Are you interested in such a solution that is similar to what existing antivirus solutions do? I.e. keep track of a central database with some metadata (e.g. UID, vendor name, etc.) for each virus and whenever a new application is being installed we query that database to see if we should worry. Because during *installation* we can't really do much more. Even more, as long as a virus is not in the database *yet* we will not recognize it as an undesirable component for the system.
Or perhaps it's not only *installation* that you think of, but tracking what 3rd-party applications do during their lifetime? When they do something that matches a "suspicious" pattern (such as getting data from Contacts and sending SMS to all/sending all data to a remote server, etc.) we ask the user for confirmation if she is really aware that one of the 3rd-party applications she installed is doing something suspicious and if it's really allowed. Getting an affirmative answer would indicate that we should no more worry on that application in the future - OTOH a "Yeah, it's really strange" answer could trigger us to remove that component right away before doing too much damage. And we could report that to our central database, too (wherever it would be).That is, it would be a self-learning "firewall" in the sense that it'd actively monitor the device.
Briefly: more info needed. :)
ltomuta | 21/02/2009, 17:24
... but I've thrown in the remarks about public APIs and capabilities only to make the problem appear more complex :) Any "creative" solution in that context could have been fun to read, as fun as some of the comments one can read in some of the blogs that cover the subject.
As for real and complete solutions, whatever the APIs and capabilities they need, I live that in the hands of the security companies, it's their business to make them work.
truf | 22/02/2009, 16:23
Looks, i can post comments, becouse captcha is always wrong.
Interesting, wat you want to hear? Magic wand does't exists. Mobile malware problem is not different from a PC security problems, and even for PC there are no "simple" solution. Nokia alrady make "curse of silence" protection tool. Does Nokia going to provide a separate tools for every malware application? If no, then you should write antivirus with db as tote_b5 says, if you really need a solution. And keep its up to date. Thats simple.
Everything can be cracked and bypassed if attacker see a big piece of cheese in the end of that maze. Actually i face once with guys who ask me to make a trojan like that (of cource, i reject their proposal) - finally, after all tricks, all what they really need is to send sms and make calls to predefined set of numbers. Thats only way to gain profit. Nobodie want just to harm your device. And i'm sure that malware connect to internet host just to update a list of those 'payed' SMS and phonenumbers. Attacker doesn't interested in anything else: nor your logs, nor your photo's, nor a CPU for DDOS. At least for now. I'm sure the only rational way to stop malware on mobile phones is to protect not a phones itself, but payed services which they provide. I wonder how easely you can lost your money - just send sms and network provider happy to decrease your account. No any confirmations, no any captcha, no any security locks.. Thats freedom to become looted. I have to enter captcha even to post that free comment, but you never find any protection on a short payed sms numbers. My opinion, what network providers have to increase security of those services, becouse they make me a desired target of attackers even if i dont know about those services, never use them and don't give them any agreement to provide those services for me. But I wonder if network providers will do any confirmation captcha mechanism without judgement. And I'm sure what malware problem never be solved becouse nobodie really interested in that - finally end user will pay for all, to hackers for unconcern or to security companies for protection, or to both. And even device monufacturers does't really interested in security of their devices - they even does't want to prevent their stealing.
The trivial solution
Sorcery-ltd | 21/02/2009, 14:49
1) Take any example application from the Forum Nokia that requires no capabilities (to get least capabilities requirement)
2) Change the name of the executable written to the device (only need change in the package file) to EConServer.exe
3) Build the project, self-sign and install the SIS file
Installer will now not allow this virus to install because of name conflict in \sys\bin.
That should do the trick. Not really an "anti-virus" though and very easy for the attackers to work around.
Mark