You Are Here:

Community: Blogs

Risto Helin's Forum Nokia Blog

Symbian Platform Security, capabilities and application security

Rippe | 11 September, 2006 13:31

I asked a colleague about what should I write in my first blog. He replied “Something positive”. But then again he was getting something positive to his cup – fresh coffee on Monday morning, I guess that’s where the analogue came from.


Last week we solved a case in a way that I felt positive. The developer was asking for AllFiles capability for their application in order to search the Messaging Inbox for a specific message. Fortunately it is not needed, there is a class called CMsvEntry in the messaging framework. That makes it possible to access the inbox. For searching stuff there is the CMsvFindOperation-class.


I was very happy about this as when creating applications to S60 3rd edition you should be very cautious about which capabilities the application has. Out of the 20 capabilities out there seven has been determined to be sensitive. That in a sense that those are needed mostly to specific applications only (DiskAdmin), they provide access to device drivers (CommDD, MultimediaDD), access to sensitive areas of the system (AllFiles, TCB, DRM) or provide more comprehensive access to certain features (NetworkControl). The need for being cautious comes from looking at the Platform Security from security perspective, if you have not considered the application architecture properly the application may provide access for malware to access the system. What a nightmare – my application is known to provide access to the system features for hackers.


Sure some applications require the seven capabilities, but not quite many. Antivirus and device encryption applications need TCB and few others. I think an IP Security solution would need CommDD. Then we have these cases where the application needs loads of capabilities just because of its nature. MTM’s (Message Type Module), FEP’s (Front End Process) and Browser Plug-ins are good example of such. Each requires All-TCB (All capabilities except TCB). MultimediaDD and NetworkControl are such capabilities, where I think the most innovative surprises will come in. And I now mean “Cool!” kind of stuff. Getting five of the seven capabilities is getting more straightforward from today onwards (not TCB/DRM). My colleagues in Symbian are planning to update the Capability Request form tomorrow. The idea is to receive more details of the application and the use of the capabilities. Naturally our concern is to see that the use of the sensitive capabilities is justified and there would not be any security holes. 


One way of limiting the risks is to limit the “spread” of the sensitive capabilities to minimum. Take the function requiring anything sensitive and package it to a separate part of the application which goes to an embedded SIS. That should help. I hope to see some more security related material for developers later this yer. However the more difficult part is to figuring out which capabilities the application requires. Currently we have the epocwind.out log file in the emulator (see the www.forum.nokia.com/platformsecurity FAQ for more) to see which capabilities does the application really need. But I feel we need more. At least the log is full of other stuff as well, so a simple view should do the job. In my mind we also need the source code checker as well, check the code as see which capabilities are needed type of solution. Both of these solutions would support each other. But those of you who are reading the S60 blogs (blogs.s60.com) know that we are planning such. Hopefully next time when I’m blogging I can write more about that and how we are proceeding there.

RSSComments

Re: Symbian Platform Security, capabilities and application security

mgroeber9110 | 18/09/2006, 11:10

Hi Risto... long time no speak. ;-)

there is also the other side of this, where Nokia's APIs themselves are asking for capabilities that seem to be excessive for the job, perhaps just because of their implementation.
My pet example at the moment is the CPbkAddressSelect class, which in addition to the ReadUserData capability (which is very appropriate, for getting at data from the user's phone book) also needs WriteUserData, ReadDeviceData, and even WriteDeviceData.

The last two can only be granted by Symbian Signed, and are at least moderately sensitive because they allow messing up global system settings.

I think that this is one example for a case where the API itself should be revisited - a simple function like asking the user to select a single entry from their phone book should not require granting blanket write access to data for an application, and especially not to global settings.

Another example is CTelephony, which needs the NetworkServices capability even just for constructing the object, regardless of what you want to use it for (e.g. querying the IMEI) - with the risk of (firmware dependent!) hangs occuring otherwise. The constructor even prints another warning (for WriteDeviceData, I believe), but this seems to be less severe because it "only" seems to affect a Publish/Subscribe property.

ciao marcus
You must login to post comments. Login
 

Rate This

 
 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZdescriptionQSxAE20softwareE20engineerE20livingE20inE20VancouverE2cE20CanadaE20E2dE20httpE3aE2fE2fwwwE2eantonypranataE2ecomE2fE20antonyprE20E7cE2013E20E44ecemberE2cE202006E2007E3a57E20IE20writeE20thisE20blogE20becauseE20soE20manyE20E71uestionsE20atE20ForumE20NokiaE20E44iscussionE2cE20suchE20asE20E22HowE20doE20IE20startE20SymbianE20OSE20CE2bE2bE20developmentE3fE22E2cE20E22WhichE20SE44KE20shouldE20IE20useE3fE22E20etcE2eE20Ea0E20E44ownloadE20SE44KE20TheE20firstE20thingE20toE20doE20isE20downloadE20theE20SymbianE20OSE20CE2bE2bE20SE44KE2eE20WhichE20SE44KE20toE20downloadE3fE20ThereE20areE20severalE20SE44KsE20dependingE20onE20theE20UIE20platformsE20ofE20theE20phonesE2cE20iE2eeE2eE3aE20S60E2eE20ThisE20isE20theE20platformE20ofE20theE20mE2eE2eE2eX qdcZidentifierQSxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fblogE2fantonyE2dpranatasE2dforumE2dnokiaE2dblogE2f2006E2f12E2f13E2fhowE2dtoE2dstartE2dsymbianE2dosE2dcE2ddevelopmentX qdcZpublisherQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fidE2fc764fd1cE2d8b06E2d499aE2d9a6aE2d17c3903d5a65E2fforumE5fnokiaE5fcrawlerE5fagentX qdcZtitleQSxAntonyE20PranataE27sE20ForumE20NokiaE20BlogE20E7cE20HowE20toE20StartE20SymbianE20OSE20CE2bE2bE20E44evelopmentE3fX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZBlogContentQ qdcZtypeQUqfntypeZBlogE45ntryQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qrssZdescriptionQSxAE20softwareE20engineerE20livingE20inE20VancouverE2cE20CanadaE20E2dE20httpE3aE2fE2fwwwE2eantonypranataE2ecomE2fE20antonyprE20E7cE2013E20E44ecemberE2cE202006E2007E3a57E20IE20writeE20thisE20blogE20becauseE20soE20manyE20E71uestionsE20atE20ForumE20NokiaE20E44iscussionE2cE20suchE20asE20E22HowE20doE20IE20startE20SymbianE20OSE20CE2bE2bE20developmentE3fE22E2cE20E22WhichE20SE44KE20shouldE20IE20useE3fE22E20etcE2eE20Ea0E20E44ownloadE20SE44KE20TheE20firstE20thingE20toE20doE20isE20downloadE20theE20SymbianE20OSE20CE2bE2bE20SE44KE2eE20WhichE20SE44KE20toE20downloadE3fE20ThereE20areE20severalE20SE44KsE20dependingE20onE20theE20UIE20platformsE20ofE20theE20phonesE2cE20iE2eeE2eE3aE20S60E2eE20ThisE20isE20theE20platformE20ofE20theE20mE2eE2eE2eX qfnZdistributionQUxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fX qfnZtopicQUqfnTopicZcppQRqdcZtypeQUqrdfsZE52esourceQRqmarsZrelevanceQNx100X qfnZtypeQUqfntypeZBlogContentQ qfnZtypeQUqfntypeZBlogE45ntryQ qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZupdatedQDx2008E2d06E2d07X qfnZuserE5ftagQSxsymbianE2dcE2bE2bX qmarsZdescriptionQSxAE20softwareE20engineerE20livingE20inE20VancouverE2cE20CanadaE20E2dE20httpE3aE2fE2fwwwE2eantonypranataE2ecomE2fE20antonyprE20E7cE2013E20E44ecemberE2cE202006E2007E3a57E20IE20writeE20thisE20blogE20becauseE20soE20manyE20E71uestionsE20atE20ForumE20NokiaE20E44iscussionE2cE20suchE20asE20E22HowE20doE20IE20startE20SymbianE20OSE20CE2bE2bE20developmentE3fE22E2cE20E22WhichE20SE44KE20shouldE20IE20useE3fE22E20etcE2eE20Ea0E20E44ownloadE20SE44KE20TheE20firstE20thingE20toE20doE20isE20downloadE20theE20SymbianE20OSE20CE2bE2bE20SE44KE2eE20WhichE20SE44KE20toE20downloadE3fE20ThereE20areE20severalE20SE44KsE20dependingE20onE20theE20UIE20platformsE20ofE20theE20phonesE2cE20iE2eeE2eE3aE20S60E2eE20ThisE20isE20theE20platformE20ofE20theE20mE2eE2eE2eX qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZBlogContentQ qrdfZtypeQUqfntypeZBlogE45ntryQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ