Apple And Security: Long Road Still AheadApple's trying to pick up its game with iPhone security, recently listing an iPhone Security Engineer position. Assuming the job is really about helping users -- and not just thwarting pesky unlockers -- it's a good move, but some corporate inertia might need to be overcome before security is a true priority. Just take a look at the official iPhone Enterprise Deployment tools.
Apple's trying to pick up its game with iPhone security, recently listing an iPhone Security Engineer position. Assuming the job is really about helping users -- and not just thwarting pesky unlockers -- it's a good move, but some corporate inertia might need to be overcome before security is a true priority. Just take a look at the official iPhone Enterprise Deployment tools.Apple's Enterprise iPhone support site contains links to three tools to create custom configuration files that can be used to provision large numbers of iPhones in an enterprise environment. The only documentation is a PDF deployment guide hidden in plain sight in the middle of the main graphic on that page.
Unfortunately, taking a quick peek at the Web Utility 1.0 for Mac reveals not only huge usability flaws, but some potential security problems, too.
The installer is lacking any documentation, and gives no feedback as to what it's doing. Poking into the deployment guide reveals that it isn't just a tool for deploying configuration rules via a Web server, it actually is an entire Web server installed onto the machine used to create the configurations. Poking through the source reveals an embedded Ruby on Rails application, and here's where it begins to get really sketchy.
The server installs itself on port 3000, is remotely accessible by default, and uses a default username and password (admin:admin) that can only be changed by finding the source files yourself and hand-editing the hard-coded credentials. You'll find the settings in the "authentication.rb" file, which addtitionally contains this particularly amusing comment:
# This file contains the (plain-text) user name and passwords for individuals
# authorized to access the iPhone Configuration Web Utility
# This should be used for testing purposes only.
Fortunately, Apple has been doing some good security work lately in securing the version of Ruby on its systems (Apple often runs outdated versions of software with known vulnerabilities and is usually many weeks or months late in distributing patches to those included applications) through the efforts of Drew Yao. At least it's not installing a version of Ruby that is vulnerable out of the box.
Of course, that assumes the application itself was written securely, but given the nature of how the entire service is installed and configured, it seems like that might be too much to ask for.
If you decide that the security risk is a bit much for you, or even if you're simply done creating your configuration files, good luck disabling the Web server your Mac is now running. There is no uninstallation method documented anywhere on Apple's site for actually removing the service! So any future vulnerability in Ruby unnecessarily exposes your machine, even if it no longer needs the running service.
Ironically, it's actually easier to use a GUI in Windows to disable the Windows version of the same service (through the Administrative Services control panel) than the recommended commandline in OS X.
One unofficial method to remove the service once installed was posted as a comment over at TUAW: [http://www.tuaw.com/2008/07/10/apple-releases-iphone-configuration-web-utility-1-0/] :
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.iPhoneConfigService.plist
sudo rm /System/Library/LaunchDaemons/com.apple.iPhoneConfigService.plist
Of course, that still leaves the plethora of files installed by the package in the first place that will require manual removal. What a mess!
It would be nice to think that this is more indicative of a rushed iPhone 2.0 deployment than Apple's general attitude toward security. Sadly, that doesn't seem to be the case, as demonstrated by Apple's handling (or lack thereof) of the recent DNS cache poisoning attack.
Hat-tip to Ryan Naraine over at the Zero Day blog for catching Apple's security engineer job posting.