Slashdot Mirror


Apple To Patch Dashboard Vulnerability

bonch writes "Apple has quickly patched a previously reported security hole that allows websites to auto-install potentially malicious widgets without prompting the user. The fix is one of over three dozen miscellanous fixes to be included in OS X 10.4.1, code-named 'Atlanta', and may appear by the end of the week. Users will now be prompted before a widget downloads to their hard drive."

99 comments

  1. Come again? by Abberlaine · · Score: 2, Interesting

    Why Atlanta?

    1. Re:Come again? by Soukyan · · Score: 2, Funny

      Good point. The Tigers are from Detroit, no?

    2. Re:Come again? by Anonymous Coward · · Score: 0

      It's called, "alphabet."

    3. Re:Come again? by peetola · · Score: 1

      Why Atlanta?

      My guess is that it's close to the Coke Museum. Coding up 10.4.1 probably took a few coke-filled nights...

    4. Re:Come again? by Polly_Morf · · Score: 0

      Because atlanta is a big cat, just like a tiger, lion and a panther. I mean jeez. Am I the only one to see that?

    5. Re:Come again? by krakelohm · · Score: 1

      Cuz' thats where all the O'G's are from, fo-shizzle.

      --
      You are all a bunch of idots.
  2. They should post an advisory by mithras+the+prophet · · Score: 4, Insightful

    It's pretty stupid that Apple's policy prevents them from discussing the issue before they have a patch for Safari. They really ought to post an advisory urging users of their shiny new operating system to turn off the ``open safe files after downloading" preference in Safari. Considering that it's now established that malicious widgets can replace the Apple-supplied widgets, run with full user privileges once activated, and execute arbitrary binary code, Apple really owes it to its users to warn them.

    --
    four nine eighteen twenty-7 thirty-nine forty-7 fiftyeight sixty-nine seventy-9 eighty-8 one-hundred-and-nine one-twenty
    1. Re:They should post an advisory by allgood2 · · Score: 4, Informative

      Apple's already warned users about the "run safe files" function before. The warning indicated that average users should turn the function off, unless you ONLY downloaded files from known, "safe" sites. I had thought that they had released an update that had switch the default in Safari to remove the check from the "open safe files" box, but either Tiger changed that, or I was wrong.

    2. Re:They should post an advisory by moonpxi · · Score: 1

      The warning indicated that average users should turn the function off, unless you ONLY downloaded files from known, "safe" sites.

      So, shoudln't Apple have provided this function already in off as default? Lucky me I use Firefox.

      --
      "Computer science is no more about computers than astronomy is about telescopes." E. W. Dijkstra
    3. Re:They should post an advisory by goombah99 · · Score: 3, Insightful
      When I have downloaded application containing widgets they all came packaged as Zip files. the OS warned me that the file I was downloading contained an application. Safari then unzipped and the widget was autoinstalled into the dashbar. The first time I ran it it said this is the first time you are running this and gave me a warning dialog before executing it.

      So really I had my warnings. If you are worried that people get inured to click through warnings then you might as well worry about people running any application they downloaded.

      The only thing that was even vaguely troubling was that it was never stated the item would be auto-installed in the dashboard. Thus even though I was not in danger of running something I did not ask for, I was in danger of installing something in the dashbar I did not understand that I was approving when I allowed it to unzip.

      So the advisory you want is pretty pointless. if people dont listen to the warnings of their own computer then why an advisory. The advisory is more likely just to make people needlessly fearful.

      --
      Some drink at the fountain of knowledge. Others just gargle.
    4. Re:They should post an advisory by Anonymous Coward · · Score: 0

      Did you even read his linked page at all? Did the moderators? The whole freaking point is that it is possible to create widgets that bypass the warnings and have a webpage silently overwriting the Apple provided widgets with identical looking malware widgets in the background. That's why it is a security issue in the first place. Now you come and post about the normal intended behaviour and why *that* needs no advisory and get modded as insightful...

    5. Re:They should post an advisory by NaugaHunter · · Score: 3, Interesting

      The only thing that was even vaguely troubling was that it was never stated the item would be auto-installed in the dashboard.

      It's only 'vaguely troubling' because you aren't used to it being done. Installing known files for the user is a good idea in concept. The problem is leaving safeguards so the 'bad files' don't get installed.

      They are kind of caught between a rock and a hard place here. They want to move forward and make things easy for the user to get and install without needing to understand how things are done, but they still need to prevent 'bad things'. And yes, power users want to control every step and don't mind decompressing and moving files by hand, but they are trying to get the more casual user with the 'It just works' paradigm.

      --
      R: That voice. Where have I heard that voice before? B: In about 365 other episodes. But I don't know who it is either.
    6. Re:They should post an advisory by supabeast! · · Score: 0, Flamebait

      Apple users aren't the kind of people who read security advisories. Most Apple users not only don't know what one is, they don't know where to go look for one. At best Apple could send email to registered users, but given how many hackers/phisers are sending out fake emails from ebay, paypal, banks, and Microsoft, there's no reason to expect anyone to trust emailed advisories.

      The real problem here is not Apple's handling of the advisory. It's that Apple created a culture where users aren't supposed to worry about security, and then made an incredibly stupid design decision that has the potential to negatively affect users. It also makes one wonder who Apple's beta testers are - apparently there aren't any competent IT security firms doing testing, because if there were someone would have pointed it out a long time ago.

    7. Re:They should post an advisory by kylemonger · · Score: 2, Interesting
      The problem with turning off "open safe files" is that Apple's definition of safe files is too broad. It lumps executable code in with things like movies and sound files. The result is that with the option disabled you have to manually open music samples at online music stores, the same for clips downloaded from NPR. You have to manually open PDF files and downloaded images. It really makes web browsing a lot more inconvenient.

      The right thing to do is to not consider widgets to be "safe", and it looks like that's what Apple is going to do.

    8. Re:They should post an advisory by Krach42 · · Score: 1

      The problem that was expressed by the earlier Slashdot article about this (or was it a MacSlash article)... anyways.

      The guy said himself, it's unlikely to cause the widget to actually do anything harmful. But rather it would just be annoying.

      He gave an example, and even a sample widget. The widget was simply just the goatse guy as the icon for the widget.

      Now, considering that you can't uninstall, delete, or otherwise remove widgets without manipulating the files directly, I call that pretty damned annoying.

      --

      I am unamerican, and proud of it!
  3. What, too obscure? by TCQuad · · Score: 1

    They're saving Atalanta for OS X 10.5, code name "Lion".

  4. A suggestion for improvement by MobyDisk · · Score: 4, Interesting

    I think that when a company releases a patch for this type of thing, they should also make the patch report attempts to abuse the exploit. That would make it possible not only to secure against the exploit, but to catch the black hats who try to use it.

    So if a site tries to use the Mozilla/XPI script exploit to install a rogue extension, Mozilla should send a report to mozilla.org. Then they can blacklist the site, or even pursue legal action.

    This would be GREAT for anti-spyware programs. When someone tries to auto-install spyware on to IE, Microsoft could get a report and the spyware company would feel the wrath of a monopolistic giant crushing them.

    1. Re:A suggestion for improvement by amichalo · · Score: 4, Interesting

      Good idea but difficult to implement.

      I think that when a company releases a patch for this type of thing, they should also make the patch report attempts to abuse the exploit.

      One problem is that many of the exploits rely on a series of steps being taken, some of which may be perfectly acceptable but in concert, create the exploit.

      If forinstance, an exploit overflowed a buffer with an infinite loop, an Apple patch may rewrite that piece of code so it cannot create that infinite loop scenario. All of a sudden, the exploit code no longer exploits anything, but there is no way to know that it would have since the code has changed.

      I don't know about other programmers, but I find creating good error handling routines to be one of the most challenging aspects of software development because you have to plan for every eventuality, be it expected, malicious, or just a bug.

      --
      I only came here to do two things; kick some ass, and drink some beer...looks like we're almost out of beer.
    2. Re:A suggestion for improvement by Anonymous Coward · · Score: 1, Insightful

      It would be awfully difficult to do in this case. It's kind of tough for the software to tell, without actually running it, if a simple Dashboard Widget is intended to be malicious.

      If you wrote a code to watch for such a thing, you would probably be so flooded with false positives that the detection system would be rendered useless.

    3. Re:A suggestion for improvement by geoffspear · · Score: 4, Insightful
      If I'm not mistaken, the "exploit" in question is the same technique used by many download sites (including, e.g., Sourceforge) to serve files. You navigate to a web page which displays HTML content and then triggers a download of a file while the page is being displayed.

      In Safari, if the file happens to be a widget, it gets installed for you so you can activate it from within Dashboard. If it's a disk image containing an application, the disk image gets opened (in Tiger, with a warning) so the user can take the right steps to install the application.

      There are substantial non-abusive uses of this technology and, right now, basically one abusive use of it (sending a file that will auto-install without having the website actually ask the user if he/she wants to install it.)

      It's perfectly legitimate to have a site that contains a "Download my widget" link which sends the user to a page like this. Whether the widget can be harmful or not is irrelevant; there's nothing Apple can reasonably do to prevent someone from distributing malicious software to users who trust the person distributing it and intentionally install it.

      Removing the auto-install of widgets, replacing it with a "Are you sure you want to install this widget" dialog, is the reasonable solution, and brings it in line with how Safari acts when any other executable is downloaded.

      --
      Don't blame me; I'm never given mod points.
    4. Re:A suggestion for improvement by Crisses · · Score: 1

      "Microsoft could get a report and the spyware company would feel the wrath of a monopolistic giant crushing them."

      This brings up the brain-bending picture of Bill Gates as the Monopolistic Green Giant talking to Sprout...

      "Gee, Mr Giant!" cried Sprout. "How was I to know my computer had a virus that caused it to attempt to violate thousands of browsers? Is there any way we can settle out of court?"

      (background chorus) "Owe Owe Owe -- Green Giant!"

      --
      ---- I'm out of your mind!
    5. Re:A suggestion for improvement by nine-times · · Score: 2, Informative
      I think it's a good idea, but doesn't really make sense for this particular issue. As I recall, the issue is that the default for Widgets when downloaded is to install them. Though this doesn't present a real security risk (widgets can't access local files and report back), it presents an opportunity for websites to autoinstall advertisements.

      So I don't think there is any real "offending code". The whole thing of a download commencing when you visit a page is used for a lot of download sites (instead of a direct link to the download, they point to a page which initiates a download). The OS then recognized it was a widget and installed it. It's not like your system is suddenly rooted, but you might end up with some widgets you don't want.

    6. Re:A suggestion for improvement by rokzy · · Score: 1

      AFAIK the only way of autoinstalling is to put the widget in a zip set to unzip to the correct location, in which case you DO get a warning about the zip containing an executable.

    7. Re:A suggestion for improvement by Anonymous Coward · · Score: 1, Funny

      I don't know about you, but golly gee that sure sounds like ActiveX controls.

    8. Re:A suggestion for improvement by geoffspear · · Score: 1
      It's nothing like ActiveX controls. A remote site can't cause code to execute without user interaction.

      Installing the widgets in a directory that Dashboard uses to make them available for use within its GUI without asking the user is definitely a bug (the one that's being fixed in the patch that's the subject of this article), but it's not as harmful as some people have suggested, and it's really not much different than offering a normal executable for download, and then sticking it somewhere that the user could click on it to execute it.

      Is an icon stuck somewhere in Dashboard's GUI where a user will only see it if they're actually trying to add widgets to the set that's displayed on their screen more harmful than an icon in a folder on the desktop (or other default download location, if the user's set it)? Perhaps, but it's not like something that allows a remote website to execute arbitrary code by having a user navigate to the site, with no further user interaction.

      --
      Don't blame me; I'm never given mod points.
    9. Re:A suggestion for improvement by Have+Blue · · Score: 4, Funny

      an Apple patch may rewrite that piece of code so it cannot create that infinite loop scenario

      Hey, if Apple wants to solve the halting problem as part of their security initiative, that's fine with me. Now that's dedication!

    10. Re:A suggestion for improvement by Sentry21 · · Score: 0

      Ah, but the problem is not that. The problem is that Safari automatically *opens* these widgets, which in turn installs and runs them. Thus, just visiting a page can install and run a widget on your system, which can, in turn, download other software and run that too. Pretty big freaking hole.

    11. Re:A suggestion for improvement by Anonymous Coward · · Score: 0

      The poster said exactly that. And further said that this specific feature should be removed (ie. no auto launching without user initiated action)

    12. Re:A suggestion for improvement by geoffspear · · Score: 3, Informative

      It absolutely, positively, does NOT run them. It installs them in a directory, which is read when you click the big plus sign at the bottom of the Dashboard screen. They're only run if you click on them there.

      --
      Don't blame me; I'm never given mod points.
    13. Re:A suggestion for improvement by Skippy_kangaroo · · Score: 1
      If forinstance, an exploit overflowed a buffer with an infinite loop

      Buffer overflow within infinite loop?

      Is that like a bad parking experience when visiting Steve at Apple headquarters?

    14. Re:A suggestion for improvement by ColdGrits · · Score: 1

      WRONG.

      It does NOT autrn them.

      I'll repeat that because it is a very important point.

      IT DOES NOT AUTORUN THEM.

      It autoinstalls, yet, but does NOT autorun - the user still has to go to Dashboard and select and activate the widget.

      So no, it is NOT possible to cause the widgetto be RUN without the user doing it.

      --
      People should not be afraid of their governments - Governments should be afraid of their people.
    15. Re:A suggestion for improvement by earthbound+kid · · Score: 1

      It's one of the lesser known side effects of Jobs' "Reality Distortion Field." Not only can he distort the *physical* universe, he can also distort the *logical* universe. Not only does it allow them to solve the Halting Problem, it also lets the company be both dying (BSD-style) and about to topple Microsoft, simultaneously.

  5. Re:3 Dozen? by chris462 · · Score: 1

    Has Microsoft *ever* released patches for three dozen problems?

  6. Re:3 Dozen? by rokzy · · Score: 4, Insightful

    "fixes" means little things mostly.

    Apple releases a new OS and the biggest thing people can find to bitch about is that if you have the auto-open option set, it auto-opens.

    MS releases a new OS claiming great security and within a couple of months the internet is crippled by Blaster.

    compare and contrast.

  7. don't dismiss this one so fast by Heisenbug · · Score: 3, Informative

    The Dashboard behavior they're changing is the rough equivalent in Windows of visiting a web site and having an application (with disk access disabled) appear in your All Programs start menu without warning. If that happened, you can bet that we'd all be bitching about it, and it would be catching an awful lot of users off guard. By now it would be on all the juarez sites as a DDOS client, and probably doing some significant harm to sections of the internet ...

    I do think Apple handles security better than Microsoft, but in this case they simply were lucky that no one bothered to exploit their hole.

    1. Re:don't dismiss this one so fast by rokzy · · Score: 1

      well I've been to a website with IE that did that just because I used a scrollbar.

      but I don't get this widget thing. are they starting a download of a zipped widget, in which case you get a warning even with auto-open enabled, or a widget file on its own, in which case it would not install or run without explicit actions?

    2. Re:don't dismiss this one so fast by Heisenbug · · Score: 1

      I'm not sure, though there's a demo exploit floiting around. I do know this: on my vanilla Tiger install, when I clicked a 'Download Now' link on Apple's dashboard plugin page, it would download and install without any kind of warning. The steps would be: click link; download appears in safari's download manager; Dashboard widget appears in widget list.

      I can understand not worrying too much about this issue if that hasn't happened to you. Having watched it, it definitely set off alarm bells in my head, and I don't understand why no one at Apple caught it. Now I run with open-safe-files off, and all is cool.

    3. Re:don't dismiss this one so fast by SandSpider · · Score: 1

      Depends on the type of widget. If it doesn't have any custom javascript (such as a search widget that submits a form through safari), then it doesn't bother checking to see if it's okay. So you could, for example, make a porn-surfing widget that could auto-install with no trouble.

      However, if you wanted to display the search results in a custom list, which would require custom scripting, then a dialog would pop up saying something along the lines of "This is the first time 'Widget Name Here' is running on your system. Do you want to use it?" If you click 'No', it's removed from your Dashboard with no running of scripts.

      --
      There is nothing so good that someone, somewhere, will not hate it.
    4. Re:don't dismiss this one so fast by argent · · Score: 1

      If it doesn't have any custom javascript (such as a search widget that submits a form through safari), then it doesn't bother checking to see if it's okay.

      And that's not OK, because Dashboard isn't really a proper sandboxed environment. It is too dangerous for Apple to treat it as the same kind of sandboxed environment as Safari, it's a general purpose application platform and installing a widget should be treated as the same kind of serious action as running an application is.

    5. Re:don't dismiss this one so fast by SandSpider · · Score: 1

      And that's not OK, because Dashboard isn't really a proper sandboxed environment.

      Can you give me an example of a possible exploit? If you can't access any of the dashboard-only calls without a user granting permission, what's the problem?

      For my comment above, it might not be the javascript that's the limiting factor. It might that your plist has to request access to the system-altering routines, but in any case, it should be relatively safe.

      Unless, I'll run my own thought experiment, you're suggesting some flaw, such as a buffer-overrun, could hit the patch in memory that tells Dashboard that the widget can access the system routines, but without hitting the routines that would check that they are legal to perform. Something like that?

      --
      There is nothing so good that someone, somewhere, will not hate it.
    6. Re:don't dismiss this one so fast by argent · · Score: 3, Informative
      Can you give me an example of a possible exploit?

      According to this page:

      Dashboard does not present a prompt before running a privileged widget that is one of the Library/Widgets folders, including our auto-installed widgets.

      If a widget contains a native Mach-O executable, Safari will present a warning before downloading the widget. However, because widgets in ~/Library/Widgets can run shell commands with the widget.system() call, this protection is easily defeated.

      And then, even if they fix this, are users going to refuse to allow what appears to be a system-provided widget to run?

      When Dashboard encounters two or more widgets with the same bundle identifier, it only displays the last one loaded. And -- you guessed it -- widgets in ~/Library/Widgets are loaded after the system-supplied widgets in /Library/Widgets.

      And finally, a sandboxed environment is one in which dangerous things are not possible. Not one in which dangerous things are only possible if a user approves them. And Dashboard's "sandbox" is the latter kind of environment, not the former.
  8. Re:3 Dozen? by AusG4 · · Score: 1

    Uh huh....

    3 dozen fixes in a single point release? This is peanuts... a Microsoft service pack is a wholly different animal.

    The last combined updates for 10.3 were in the neighborhood of 80-100 megabytes, encompassing every fix from 10.3.1 to the present.

    Service pack 2 for Windows XP was, what, 450MB or something?

    I smell cluelessness....

    --
    bash-3.00$ uname -a
    SunOS panda 5.10 Generic sun4u sparc SUNW,Ultra-2
  9. great! by sootman · · Score: 2, Insightful

    now if they'd quit bugging me every time I download a .dmg we'd be set!

    --
    Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
    1. Re:great! by ravenspear · · Score: 1

      You can always switch to Firefox.

    2. Re:great! by Uninen · · Score: 1

      now if they'd quit bugging me every time I download a .dmg we'd be set!

      Try Taboo. It's a free little app that a) warns you before closing a window that has tabs open, and b) disables the nag when downloading a .dmg file.

    3. Re:great! by JKatan · · Score: 1

      On a somewhat related note, I wish they'd add some kind of option to turn off the finder warning when one changes extensions of files in. Seriously, its pretty ridiculous to have to hit the confirm button EVERY SINGLE TIME I change (or add) and extension to a file. the worst part is that the "keep (current extension)" button is the default button; I cant just hit return. I have to use the mouse and click on the "change' button , or hit tab,tab,space. *GRRRR* very annoying!

    4. Re:great! by Anonymous Coward · · Score: 0

      Yeah because Firefox is so fucking wonderful.
      Safari 2 kicks Fireyiff's ass all over the place

  10. Re:3 Dozen? by topham · · Score: 2, Interesting

    Microsoft doesn't release patches for 3 dozen problems.

    Microsoft releases patches for thousands of problems at once. They are called service packs.

    The only updates they release the rest of the time are security updates.

  11. Worst-case scenario for Dashboard malware? by yardbird · · Score: 3, Insightful

    What's the worst that a malicious widget can do? Presumably it has access to the network, so it could be a DDOS client (as someone mentioned above). What can widgets do locally?

    --
    Free, legal music for iTunes users.
    1. Re:Worst-case scenario for Dashboard malware? by Anonymous Coward · · Score: 0

      Widget's can't run unlless the dashboard is visible, i.e. you hit F12, so now DDOS client owuld be able to run.

      Read the Arstechnica review already.

    2. Re:Worst-case scenario for Dashboard malware? by slart42 · · Score: 0

      >Widget's can't run unlless the dashboard is visible, i.e. you hit >F12, so now DDOS client owuld be able to run.
      >Read the Arstechnica review already.

      This is not true. Widgets will run in an own process each, and need to take care about not running when dashboard is visible by themselves. If they don't do that, they can run all the time regardless of whether dashboard is visible or not. some widgets currently available from the net don't handle this properly and will eat precious cpu cycles when running in the background.

      see apple's developer documentation for more info:
      http://developer.apple.com/documentation/AppleAppl ications/Conceptual/Dashboard_Tutorial/index.html

  12. They should fix Safari properly. by argent · · Score: 1

    They really ought to post an advisory urging users of their shiny new operating system to turn off the ``open safe files after downloading" preference in Safari.

    That would be a start.

    Better would be to quit shipping Safari with that option turned on by default.

    Best would be to take that capability out completely, because it's inconvenient as often as it's convenient and it creates an opportunity for exploits that doesn't need to be there.

  13. Quick little rebuttal by daviddennis · · Score: 4, Insightful

    Someone discovers a nasty possibility, and in two days Apple announces a fix. It will be ready within a few more days and then the problem's gone for good.

    I don't think it's hypocrtiical to praise that kind of fast response. If my memory serves, the problems that allowed the Blaster Worm and others to work were publically known for months and MS didn't do anything about them. That's where the condemnation of Microsoft comes from.

    D

    1. Re:Quick little rebuttal by remahl · · Score: 2, Informative

      Apple has not announced a patch. They have not even publicly acknowledged the problem. This is a rumor from a rumor site, based on reports from beta testers (bound by NDA) who probably only have a rough idea of the release schedule.

    2. Re:Quick little rebuttal by Blakey+Rat · · Score: 1

      If my memory serves, the problems that allowed the Blaster Worm and others to work were publically known for months and MS didn't do anything about them. That's where the condemnation of Microsoft comes from.

      Microsoft had a patch for Code Red and Blaster available for 3 months or so before the attacks happened. You can't blame Microsoft if their users don't install the patches.

    3. Re:Quick little rebuttal by Branka96 · · Score: 1

      Microsoft released on July 16, 2003 a patch for the vulnerability that the Blaster worm took advantage of. Blaster was released August 11, 2003. So, you have your timeline totally screwed up.
      Some engineer/manager at Apple decided that Widgets are safe. Hence this is an architectural blunder. The buffer overflow that Blaster took advantage of was a simple programming error. I don't care whether you prefer one over the other. The point is, that the two issues are very different.

    4. Re:Quick little rebuttal by Anonymous Coward · · Score: 0

      If my memory serves, you are a lying piece of Apple fanboy.

    5. Re:Quick little rebuttal by EasyT · · Score: 1

      True, Apple has made no announcement, but that's typical of them. Wouldn't it be stupid for Apple to say "Hey everybody, we have an exploitable problem right here and we don't have a fix for it yet!" Better to fix it quietly and quickly, no?

    6. Re:Quick little rebuttal by sydsavage · · Score: 1
      You can't blame Microsoft if their users don't install the patches.

      Why not? They have created an environment where people need to ask "Is this going to break my installed apps?"

      If people are reluctant to install a patch because of previous bad experiences, where do you lay the blame?

  14. If we were a Mac house... by argent · · Score: 1, Informative

    If we were a Mac house, and I was in charge of security, I would be seriously considering banning the use of Safari at this point.

    It's not the slam-dunk that it was for Internet Explorer back in the '90s, when I managed to get IE and Outlook banned just in time to dodge the flood of viruses that resulted from Microsoft's broken security model. The individual problems in Safari and LaunchServices are not nearly as obviously bad as Microsoft's security zones, but they're of the same nature.

    This is what Apple really needs to do:

    1. Treat Dashboard widgets just like they treat executables. They're not "safe files". It's great that they have isolated the extensions that make dashboard work so they're not available in arbitrary Webcore applications, that's an absolutely critical advantage over Microsoft's HTML control, but when run in Dashboard they have all the same capabilities as local apps and need to be treated like any other applications.

    2. Taking this a step further, they need to treat all downloaded files as dangerous, and ensure that no files are opened by an application where they're not sandboxed without the explicit request of the user. In practice, the only way to ensure this is to not pass them to ANY application that hasn't been registered with the browser (for example, as a plugin).

    3. This means that LaunchServices shouldn't be used by Webcore or in any other context where there's the potential of an untrusted object being passed to an application, except by the explicit request (not merely confirmation) of the user. A separate database should be provided for applications that ARE prepared to accept untrusted documents or other objects.

    This third step would actually increase convenience, because then you could write "safe viewer" apps that provided a strong sandbox instead of having to depend on every application figuring out whether they needed to sandbox a document based on what they could guess, so you could have viewers for files that currently can only be downloaded.

    1. Re:If we were a Mac house... by remahl · · Score: 4, Informative
      when run in Dashboard they have all the same capabilities as local apps and need to be treated like any other applications.

      They don't actually. They only get complete system access after the user has acknowledged that the widget is being run for the first time.

    2. Re:If we were a Mac house... by ThatsNotFunny · · Score: 2, Interesting

      If you were in charge of security of a Mac house, you would know better than to install 10.n.0 of any new OS X release on any of your company's computers. I never install a new version of X until at least 10.n.3.

      --
      "Was it a millionaire who said 'Imagine No Posessions?'" -- Elvis Costello
    3. Re:If we were a Mac house... by argent · · Score: 2, Interesting

      They only get complete system access after the user has acknowledged that the widget is being run for the first time.

      1. That's not true. There is an attempt at a sandbox but it doesn't apply to Widgets that were installed through the hole in Safari and even if it did there's a hole in the sandbox you can drive a Perl interpreter through.

      2. It wouldn't matter if they did, because confirmation dialogs aren't enough. Opening a document or other object in an unsandboxed environment must require an explicit request by the user. Having it appear in that environment with no indication that it came from an untrusted source is not good enough.

    4. Re:If we were a Mac house... by argent · · Score: 1

      If you were in charge of security of a Mac house, you would know better than to install 10.n.0 of any new OS X release on any of your company's computers.

      It doesn't matter. 10.3.9 still has all the other problems I mentioned. Apple has been putting bandaids on symptoms instead of fixing the deeper problems since their security "fix" last June.

      Oh, yes, compared to what Microsoft has been doing it's a tiny little problem. But they're applying the same technique to fixing the problem that Microsoft did, and its that technique that I'm concerned about.

    5. Re:If we were a Mac house... by David+Rolfe · · Score: 1

      http://developer.apple.com/documentation/AppleAppl ications/Conceptual/Dashboard_Tutorial/Security/ch apter_10_section_1.html#//apple_ref/doc/uid/TP4000 1340-CH210

      Everything else I would say has already been said by others. Yes it's a problem if Safari copies widgets to ~/Library/Widgets.

      In my opinion installation of Widgets should be handled in very much the same way as installation of screen savers. You double click it where-ever it is and are prompted 'install for you or for everybody', it asks you to authenticate depending on your answer and then copies to /Library or ~/Library depending. At which point you are free to execute the widget with all that entails.

      --
      Read Heinlein's 1953 Revolt in 2100, now more than ever.
    6. Re:If we were a Mac house... by argent · · Score: 1

      Yes, I've seen that link. If all the "widget security model" means in Dashboard is that it pops up a one-time dialog, it shouldn't even be enforced by Dashboard. All it does is create an illusion that widgets are somehow "safer" than other classes of applets... and Apple themselves have already fallen for the illusion.

      As I understand it: whether you declare these flags in your plist or not, you can't open a Widget in an arbitrary WebCore environment and get any of these rights. Only Dashboard or another front end that adds the same capabilities to its instance of WebCore can give you those rights. And THAT restriction is the important one, from the point of view of real security. Does that fit with what you know?

      In my opinion installation of Widgets should be handled in very much the same way as installation of screen savers.

      That's a very good way of putting it. Nobody would consider a screen saver to be a "safe", and yet installing a screen saver is by itself little more dangerous than installing a Widget: it doesn't do anything until at a later time you select and run it. A better analogy might be an iTunes Visualiser because someone might have the Random Screen Saver selected, but you've got the fundamental principle right: all these plugins... Widgets, iTunes Plugins, Internet Plugins, Audio Units, and so on... from a security perspective they're all applications. The fact that Widgets are implemented using HTML doesn't change that, and they should no more be treated specially by Safari than anything else for which opening it is equivalent to installing an application.

    7. Re:If we were a Mac house... by Anonymous Coward · · Score: 0

      In my opinion installation of Widgets should be handled in very much the same way as installation of screen savers. You double click it where-ever it is and are prompted 'install for you or for everybody', it asks you to authenticate depending on your answer and then copies to /Library or ~/Library depending.

      Unlike screen savers, widgets don't have to live in a specific folder to be used. You can run them from any folder (great for widgets thay you rarely use and don't want to keep in the Dashboard bar).

  15. Re:3 Dozen? by Anonymous Coward · · Score: 0

    The network install/redist of Service Pack 2 is something like ~270MB, I think most of that is that it can take any machine to Service Pack 2 without having to have Service Pack 1 installed, and it probably includes all the files Service Pack 2 needs rather than patching existing files.

    If you hit up Windows Update it'll give you Service Pack 2 as a 70-90MB install if I remember correctly.

  16. shaft has a feature to turn off the notice by Anonymous Coward · · Score: 0

    the latest verion of shaft has an option to turn off the download executable warning for .dmg etc....

  17. It could fsck your hard drive by commodoresloat · · Score: 1
    But then it would be a feature, not malware :)

    Seriously though it could do anything any script or application could do; use your imagination. It could delete everything in ~/ - that would not be fun. It could send emails to everyone in your address book announcing your engagement to Michael Jackson.

  18. If they're SAFE FILES, why are you bugging me? by argent · · Score: 1

    They should. If they didn't have an "open safe files" mechanism, there wouldn't be any rationale for having the browser pop up a warning dialog like this. Not only wouldn't there be a potential for silent exploits from "opening safe files", but they wouldn't be training people to ignore warning dialogs!

  19. Learn from ActiveX? by lbya · · Score: 3, Insightful


    Actually in my mind this Dashboard security hole, while perhaps minor, is one of the most disappointing things Apple has ever done. The line continues to blur between surfing and running code -- or between documents and executables -- and this trend, while important, of course presents serious, inherent security challenges, since it places the user in a passive position with respect to the code being executed on their computer. It's disturbing that Apple apparently didn't think much at all about that very well-known issue, before creating an auto-install, auto-execute system for Javascript apps with file system access.

    Isn't this the same major (and irrevocable) mistake that Microsoft made when they let the ActiveX genie out of the bottle? If Apple is going to walk into the same traps that Microsoft walked into years ago, it makes me question the purpose of OS X. Plus as an invention Dashboard isn't even as useful as ActiveX.

    1. Re:Learn from ActiveX? by Anonymous Coward · · Score: 0

      Aren't you fucking embarrassed to be another of the endless clowns who all see this non-event as their big chance to post their inane 'Active-X' comparison.

      It is sickening to think of just how many just plain stupid people like you are out there in the world.

    2. Re:Learn from ActiveX? by argent · · Score: 4, Insightful

      Isn't this the same major (and irrevocable) mistake that Microsoft made when they let the ActiveX genie out of the bottle?

      No, not quite. While it's a step along the dark path it's a long way from ActiveX, for a couple of reasons.

      First, it's not QUITE autoexecute. It's close enough that a naive user could easily step off the cliff, it doesn't actually push them over. It can be avoided if you're wary.

      Second, it's not irrevocable. Apple can disable "open safe files" and remove the code from Safari that autoinstalls widgets without breaking anyone's software. It's not like these capabilities are core elements of a desktop-browser integration like ActiveX is in Microsoft.

      Dashboard isn't the problem, if it's treated as "a new way to write applications" and the token attempt at sandboxing doesn't lead Apple to take it lightly.

    3. Re:Learn from ActiveX? by ciroknight · · Score: 3, Insightful

      You are blowing things way out of porportion.

      First of all, the VERY first patch to this new operating system, 10.4.1, will fix this bug. Developers can't always catch everything, and honestly, I wouldn't even have thought about it, so I can't blame Apple for not thinking about it. I'm just happy to know when my laptop arrives with Tiger installed that the very first thing that will happen is it will patch all of the holes they let slip in 10.4.0.

      Second of all, deadlines like this are vicious. If you ask me, they rushed the release of Tiger a bit just to counteract some of the press Longhorn betas and Longhorn reviews were getting, and to help the sells of Mini Macs. So some of the things they released were a little broken.

      Lastly, you said it yourself. Dashboard isn't even as useful as ActiveX, and is entirely deniable. You can turn it off and not ever use it if you choose, making any bugs like this completely null to you. ActiveX quickly became something that wasn't deniable; if you weren't running ActiveX, your bank's website would refuse to do business with you. Now doesn't that mean a flaw in ActiveX is a lot more critical than a flaw in some easily ignorable post-it note board?

      --
      "Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
  20. Until this actually ships... by ka-klick · · Score: 2, Informative

    One simple solution, is obviously to turn off "Open Safe Files" in Safari, but that does make life a bit more difficult, so, for those who want to have their cake and eat it too (at least on this issue) I found it blindingly easy to add what I think should be closer to the default behavior - and it's not dependent on Safari.

    1. Run "Folder Actions Setup" (in the Applications/Applescript folder).
    2. (if it's not already on) Turn on "Enable Folder Actions".
    3. Click the (+) button below the folder column to add a folder.
    4. Select ~/Library/Widgets in the dialog that pops up for folder selection.
    5. Then another dialog asks what action to take and presents a list of pre-made scripts.
    6. Select the "add - new item alert.scpt". (click OK).
    7. Close up the folder actions application - you're done.

    After this, whenever anything gets put in that folder, the system will alert you that something has been placed in your widgets directory and ask if you want to see it. If you weren't expecting this, say if you visited some evil site and got "drive-by-downloaded" you'll at least get tipped to the situation and can either examine the contents of the widget (if you're a geek like me) or trash it without having to dig through anything. You could also go another step and have Applescript check the contents for certain keys within the widget (say looking for preferences that allow full system access) but I think this will suffice for most people until Apple addresses the problem head on.

    There are already a couple packaged scripts that can set this up for people, but I like having done it myself and knowing what it itself is up to.

    --

    MSRP - Tax, Title & Licence Extra Your Milage May Vary

    1. Re:Until this actually ships... by 99BottlesOfBeerInMyF · · Score: 1

      Well your configuration is a good step, it could be better. I'd recommend changing the permissions on you existing widgets so that they cannot be overwritten by a malicious version (which you would then have to find and replace).

    2. Re:Until this actually ships... by ka-klick · · Score: 1

      I'm not on my Tiger machine atm, so I can't check the perms, but IIRC the Apple supplied widgets are in the /System/Library/Widgets folder which I think already takes an admin password to change anything in. I'll check it out later, but I think what you might be referring to is the fact someone else turned up that identically named widgets in the ~/Library/Widgets apparently take the place of standard widgets in the /System/Library/Widgets folder in the widget "dock" - I haven't actually played with this part of the problem, but believe that watching the users widget folder at least mitigates the problem, since you'd be alerted that something was there, and could check it out.

      --

      MSRP - Tax, Title & Licence Extra Your Milage May Vary

    3. Re:Until this actually ships... by 99BottlesOfBeerInMyF · · Score: 1

      Ahh, I did not realize it was a problem of co-existing widgets with the same name. I haven't installed Tiger yet, as I'm still waiting for Cisco to fix their VPN client. Thanks for the clarification.

    4. Re:Until this actually ships... by ka-klick · · Score: 1

      Actually, I just checked on my system, here's a listing (and I was wrong, it's /Library/Widgets not System/Library/Widgets.


      iMac:/Library/Widgets ka-klick$ ls -la
      total 16
      drwxrwxr-x 17 root admin 578B May 11 21:33 .
      drwxrwxr-x 53 root admin 1K May 5 00:03 ..
      -rw-rw-r-- 1 ka-klick admin 6K May 11 21:33 .DS_Store
      drwxr-xr-x 12 root admin 408B May 4 06:16 Address Book.wdgt
      drwxr-xr-x 12 root admin 408B Mar 23 19:49 Calculator.wdgt
      drwxr-xr-x 12 root admin 408B May 4 06:16 Calendar.wdgt
      drwxr-xr-x 13 root admin 442B May 4 06:16 Dictionary.wdgt
      drwxr-xr-x 15 root admin 510B May 4 06:16 Flight Tracker.wdgt
      drwxr-xr-x 13 root admin 442B May 4 06:16 Phone Book.wdgt
      drwxr-xr-x 11 root admin 374B Mar 23 19:49 Stickies.wdgt
      drwxr-xr-x 12 root admin 408B Mar 23 19:49 Stocks.wdgt
      drwxr-xr-x 11 root admin 374B Mar 23 19:49 Tile Game.wdgt
      drwxr-xr-x 13 root admin 442B May 4 06:16 Translation.wdgt
      drwxr-xr-x 16 root admin 544B May 4 06:16 Unit Converter.wdgt
      drwxr-xr-x 12 root admin 408B Mar 23 19:49 Weather.wdgt
      drwxr-xr-x 12 root admin 408B May 4 06:16 World Clock.wdgt
      drwxr-xr-x 12 root admin 408B May 4 06:16 iTunes.wdgt

      So permissions look pretty solid there, widgets are read-only except for root and the dir is only writable by the admin group (for which I believe you need to sudo/provide admin password to do). I could certainly be wrong about this, but I believe that the problem that was shown is that puting something w/ the same name in the ~/Widgets folder bumped the other one out of the dock - which could be serious. I don't have direct experience w/ that part of this issue, and can't say for sure, but that's how I understand it.

      --

      MSRP - Tax, Title & Licence Extra Your Milage May Vary

  21. Why? by argent · · Score: 1

    One simple solution, is obviously to turn off "Open Safe Files" in Safari, but that does make life a bit more difficult

    How do you figure? What does "Open Safe Files" do for you that it's worth even a little risk? Even if it was entirely safe I'd turn it off because it's annoying to download a file and end up with two or three extra icons on my desktop because Safari ran Stuffit which unpacked it and then mounted the DMG inside... or if I configure Stuffit to delete the original now I've lost the file I actually downloaded.

    OK, you like that automatic step, it doesn't annoy you, but why is it so important that not having it makes life "more difficult"? I'm not trolling, I honestly don't understand why this is considered a good idea, let alone something important enough to risk the inevitable future security probblems to keep?

    1. Re:Why? by ka-klick · · Score: 1

      Well, the original of this was written primarily with my MUG mailing list as the primary audience, many members of which are not slashgeeks. It was primarily to those who do prefer that setup that I was addressing that sentence. I myself go back and forth on that setting. Sometimes it is useful (though now in Tiger, possibly less so, since Safari 2 has native PDF support) I do find it useful to have pdfs opened for me without sloshing through my download folder, but most of the time I'm actually with you on this, it's better to just leave it off. I was just trying to provide a compromise solution without being overly invasive. Does that clear it up?

      --

      MSRP - Tax, Title & Licence Extra Your Milage May Vary

    2. Re:Why? by argent · · Score: 1
      It was primarily to those who do prefer that setup that I was addressing that sentence

      And it was to those that I was addressing my question, because I honestly don't get it.

      I do find it useful to have pdfs opened for me without sloshing through my download folder

      That's not been a problem for me for a long time...
      % ls "~/Library/Internet Plug-Ins"
      PDF Browser Plugin.plugin
      But in any case Firefox does it better, by letting you see the file in your download manager and open it from there. That makes it something that's under your control again.
    3. Re:Why? by ka-klick · · Score: 1
      Well, now I don't get it.

      But in any case Firefox does it better, by letting you see the file in your download manager and open it from there. That makes it something that's under your control again.

      Safari has exactly that same ability. Double click on the little icon and it opens for you, click on the magnifying glass it shows the file. Which I guess shows how I could (and have done) open those files w/o having that option checked. So, how exactly is Mozilla/FF doing this any better? (not trying to diss Moz, since I have all my Windows users using it for Browser, Mail and chat and a few using the calendar).

      As for in-line display, I'm still not sure I like it that well - never really that happy about the acrobat plugin. It's fine for quickie one or 2 page things, but anything like a book or manual that's more than a few pages, I'd rather have something I can navigate better.
      --

      MSRP - Tax, Title & Licence Extra Your Milage May Vary

    4. Re:Why? by argent · · Score: 1

      Safari has exactly that same ability. Double click on the little icon and it opens for you, click on the magnifying glass it shows the file. Which I guess shows how I could (and have done) open those files w/o having that option checked.

      Oh. Right. It's been too long since I used it. I'm addicted to the Flashblock extension, but that's another kettle of user interface goodness. :)

      It's doing it exactly the same, and that's more of why I don't "get" this "open safe files" thing.

      As for the plugin, well, Acrobat sucks dirty swamp water through used oil filters, but the PDF Browser plugin on the Mac mostly just hooks in to the native PDF support in Quartz. It works pretty well. And of course I can always use alt-click and download the PDF if I feel like it.

  22. The only real mistake Apple made is... by berndtj · · Score: 4, Interesting

    Automagically moving the downloaded widged directly into the dashboard widgets folder. Some of the responses here are suggesting that widgets in general are a securtity risk, well, so is every other application that you've installed on your machine. The assumption is that you won't install a malicitious application, well the same applies. It is up to the user to decide if an app is safe to install. What more do you want apple to do besides prompt the user and ask if they would like to install a downloaded widget? Yes, this is an issue right now, but I don't think this current issue, which will be fixed as mentioned above, makes Safari and Dashboard a security risk.

  23. Well, that's the new one. by argent · · Score: 3, Informative

    [The only mistake Apple made is] Automagically moving the downloaded widged directly into the dashboard widgets folder.

    That's the NEW mistake they made.

    The other mistake is the one they made in Safari 0.9 that they haven't yet fixed, and that is to let Safari "open safe files" automatically.

    What more do you want apple to do besides prompt the user and ask if they would like to install a downloaded widget?

    I want them to do less than that, actually. I want them to just download the widget and wait until the user chooses to install it, or not, and in the meantime leave it sitting in their Downloads folder not bothering anyone.

    Because dialog boxes asking users to confirm actions just annoy the user and train them to automatically answer "yes" when a dialog comes up. I see it happen all the time on Windows, some of my users have been infected after reflexively answering "yes" multiple times. NOBODY, though, has ever been infected after manually opening a downloaded virus more than once... because it's more of a deliberate conscious act than clicking on a "yes" button in a dialog you just want to get out of the way.

    1. Re:Well, that's the new one. by BorgCopyeditor · · Score: 1
      The other mistake is the one they made in Safari 0.9 that they haven't yet fixed, and that is to let Safari "open safe files" automatically.

      Let Safari? How about letting me do this? I happen to prefer having PDFs, disk images and a few other things open automatically, without my having to: 1) locate the tiny download window, 2) scroll down in it to the file I just downloaded, 3) click on the tiny "Show in Finder" button, and 4) double click on the file in the Finder.

      --
      Shop as usual. And avoid panic buying.
    2. Re:Well, that's the new one. by argent · · Score: 1

      I happen to prefer having PDFs, disk images and a few other things open automatically, without my having to: 1) locate the tiny download window, 2) scroll down in it to the file I just downloaded, 3) click on the tiny "Show in Finder" button, and 4) double click on the file in the Finder.

      OK, that's what Firefox does better, then.

      When you download, it opens the download window for you, scrolls down to the file as it's downloading, and you can just double-click on the file to open it.

      That way you get convenience and security.

      How about letting me do this?

      How do you feel about entering your password when you install applications?

  24. Apple could go one step further by saddino · · Score: 1

    Users will now be prompted before a widget downloads to their hard drive.

    Another problem, besides "auto-install on download" is that Dashboard's "warning" to a user on newly-installed widget launch is a simple yes/no proposition without any indication of the access sought by the widget.

    It would be nice to see Apple adopt something similar to Amnesty Widget Browser, which presents the following dialog on newly-installed widget launch.

  25. YEs but did you actually try it by Anonymous Coward · · Score: 0

    the post is wrong. you get a warning.

  26. Apple should back up a step instead. by argent · · Score: 1

    Dashboard's "warning" to a user on newly-installed widget launch is a simple yes/no proposition without any indication of the access sought by the widget.

    The fact is, Dashboard shouldn't be doing this check at all. The check implies that Dashboard is a "safe" environment, and it's not any such thing, so all it does is provide an illusion of security that encourages people to treat Widgets cavalierly... and it's truly ironic that the first victim of this illusion is Apple themselves. Same thing with Amnesty Widget Browser. The whole point to the way these programs work is that they provide a NON-sandboxed environment that can be used for Webcore scripting, without weakening the sandbox in Webcore itself.

    This "security prompt" in Dashboard is another baby step down the dark path that Microsoft took almost a decade ago. It's a bad idea... they need to step back and ask whether they should even be treating Dashboard any differently from any other application environment.

  27. Widget-Sec by David+Rolfe · · Score: 1

    Only Dashboard or another front end that adds the same capabilities to its instance of WebCore can give you those rights. And THAT restriction is the important one, from the point of view of real security. Does that fit with what you know?

    Yes, I think we agree. I think the one addition to point out is that Dashboard will only honor requests in the code for certain methods of the widget object based on the security level specified in the plist. The document I referenced explains this as: if you try to widget var s = widget.createScript ("~/Desktop/malicious.wdgt/evil-binary", null, null); without declaring AllowSystem in the widget's plist it will just ignore that command. As it's been mentioned elsewhere this is really moot at the current time (and hence the biggest problem with Dashboard's security). There is no preference, or application for controlling whether widgets are granted this power. As it stands right now you just have to 'trust' the widget developer that when she puts AllowSystem in her widget that she isn't going to erase your filevault. Without some level of granularity on the widget 'sandbox' this security model is essentially useless [untapped].

    Anyway, you are correct that WebCore alone will not honor any calls through the widget object. The widget object is the only facility that allows for capability beyond what is available with today's webpages (ecmascript, flash players, java applets) and the widget object is only available when a widget's script is evaluated by Dashboard.

    --
    Read Heinlein's 1953 Revolt in 2100, now more than ever.
    1. Re:Widget-Sec by argent · · Score: 1

      I think the one addition to point out is that Dashboard will only honor requests in the code for certain methods of the widget object based on the security level specified in the plist.

      Yeh, this is Dashboard's pseudo-sandbox. What I'm getting at is that this pseudo-snadbox doesn't actually provide any useful security, because most widgets require additional rights to function so allowing a widget those extra rights is a normal operation that someone is going to expect to do when running a widget. Additional granularity would just confuse the user and it doesn't really buy you anything unless you can genuinely distinguish capabilities that are "more safe". For example, there's no reason to distinguish "running an embedded Cocoa component" and "making a system() call" because both of these grant you full local-user control.

      And it's amazing how little privilege it takes to start a security escalation chain. Unless you can rigorously define an intermediate sandbox that yu can prove provides an intermediate level of security it's best to just stick to a two-level approach: sandbox on or sandbox off.

      A better security model... if you want one... would be for Dashboard to only run installed widgets, and for widgets that haven't been installed you'd just open them in a generic webcore app. So opening up a ".wdgt" bundle in Safari would open the widget in Safari with no access to Dashboard's extensions.

    2. Re:Widget-Sec by David+Rolfe · · Score: 1

      So again, we're on the same page.

      For example, there's no reason to distinguish "running an embedded Cocoa component" and "making a system() call" because both of these grant you full local-user control.

      Well there's no reason for 'average folks'. You and I can both tell the difference between a 'do shell script' and running a plugin and is this: It's trivial to open up the bundle and looking at the script for system calls (plain text and all) vs. trying to determine what a widget or web plugin does before running it (arguments of decompiling, etc aside).

      Anyhow, we are both saying the same thing: The sandbox is weak. The granularity of the sec is currently wasted. Widget installation should require the same checks as screen savers and apps (as they can all run arbitrary code in userspace or worse).

      --
      Read Heinlein's 1953 Revolt in 2100, now more than ever.
    3. Re:Widget-Sec by argent · · Score: 1

      You and I can both tell the difference between a 'do shell script' and running a plugin and is this: It's trivial to open up the bundle and looking at the script for system calls (plain text and all) vs. trying to determine what a widget or web plugin does before running it (arguments of decompiling, etc aside).

      It's REALLY AMAZING how close the kind of Javascript that some virus writers write is to binary. Really. I've seen whole applications encrypted and wrapped up with an obfuscated decryption routine that feeds it finally to a disguised eval. Heck, I've written code with similar goals and attributes in Postscript for the Obfuscated Postscript Programming Contest.

      From a security point of view, any privilege that can be used to get the effect of any other privilege has to be treated as the same privilege, and the two should not be distinguished as separate "rights".