How can I trust Firefox?

How can I trust Firefox?

Rate This

[Fixed issues with images; sorry]

[Removed the clear=all problem; thanks for pointing it out]

[Added a follow-up post here]

Recently, a lot of volunteers donated money to the Firefox project to pay for a two-page advert in the New York Times.

If only they had spent some of that money on improving the security of their users by, say, purchasing a VeriSign code signing certificate.

Let me explain...

One of the many criticisms of Internet Explorer is that customers are fooled into downloading spyware or adware on to their computers. This is indeed a legitimate problem, and one of the ways you can reduce the risks of getting unwanted software on your machine is to only accept digitally signed software from vendors that you trust. Every time you download a random piece of software from a random location, you're taking your chances with your PC and all the information stored on it. You wouldn't take candy from strangers, would you?

In order to help protect customers, the default install of Internet Explorer will completely block the installation of ActiveX controls that are not signed, and it will suggest that you do not install any unsigned programs that you might try to download. Of course, just because a piece of software is signed (or you have the MD5 hashes for it) doesn't mean it isn't nasty; it just provides some evidence you can use to make a trust decision about the software (in logical terms, it is a necessary but not sufficient condition for trusting software).

So what happens when a typical user decides it's time to download Firefox and enjoy the secure browsing experience that it has to offer? Well, sit back, relax, and let me take you on a journey.

First of all, I went to the advertised www.getfirefox.com, and was redirected to the real page at www.mozilla.org/products/firefox/.
From there I easily located the download link, and clicking on the it gave me the following dialog:

Download Firefox image

Hmmmm, wait a minute. I went to www.getfirefox.com, not mirror.sg.depaul.edu. I don't have any idea where that place is, and it sure makes me nervous. IE has informed me that "If you do not trust the source, do not run or save this software."

Do I really trust a bunch of kids at some random university I've never heard of? Hopefully, the average person will decide that they do not trust this web site, and they will click Cancel. No Firefox for you!

But being a brave soul (and not caring if my Virtual PC image dies a horrible death) I click Run. A few seconds later, I get the following dialog:

Picture of unsigned Firefox executable warning

What?

Not only does this software come from a completely random university server, but I have no way of checking if it is the authentic Firefox install or some maliciously altered copy. (I sure hope those 10 million people who have downloaded Firefox so far haven't all download backdoors into their system...). Since "You should only run software from publishers you trust" and since the publisher cannot be verified, I should click Don't Run (which is, thankfully, the default).

But, again, being a brave soul I click Run.

I am then greeted with this dialog:

'Picture of random setup dialog --

Oops, my network connection died. But still... that kind of unintelligible dialog doesn't do anything to make me trust the installer. Maybe this is a trojaned copy of Firefox after all?

Forging blindly ahead, I download the software again (this time coming from -- I kid you not! -- a numeric IP address, the bastion of spammers and phishers and all manner of other digital rogues) and run the installer. This time things are actually looking good:

·Installer runs fine

·I accept the defaults

·Firefox starts

·It asks if I want to make it the default browser; no thanks

·I get this dialog (seriously):

Picture of blank Message Box (not even a title bar)

Hmmm, a completely blank MessageBox. Well, OK is the default choice, so I guess I should accept that. No idea what it will do to my system though.

My confidence in this software is growing in leaps and bounds.

I decide to reboot the VPC just in case that dialog was trying to tell me something important. After rebooting, I boot up Firefox and it seems to be working fine.

I decide to install some extensions because, hey, everyone on Slashdot loves them so much. I browse to the extensions page and decide that the Amazon.com Sidebar sounds cool (I love Amazon, and Amazon loves my credit card). Clicking on the link brings up this dialog:

Picture of Firefox Extension Install dialog

It dutifully tells me the extension isn't signed (good), but makes the default choice Install Now (bad). This is the opposite of what Internet Explorer decided to default to when it detected unsigned code (ref: above). Now tell me again, which is the more secure browser?

(Just so I don't get inundated with comments about this, Firefox does disable the Install button for a couple of seconds when the dialog is first displayed, but by the time I had finished reading the text in the dialog it was enabled and ready to go).

Next, I want to go somewhere that uses Flash (heh, coz we all know I love Flash!). I'll try the Ocean's 12 official web site, www.oceanstwelve.net, which detects that Flash isn't installed and gives me a link to install it. Clicking on the link, I get taken to the Macromedia page, where I can download Flash. Firefox prevents me from running the executable straight away, and forces me to save it to disk. That's probably a good move for most users, although personally I tend to click Run inside IE because I know it will warn me about unsigned programs. Nevertheless, it is but a minor speed bump on the way to malware infection, as we shall see in the next step.

Once the file is saved, I can open it from the little downloads dialog that pops up. The problem is, there is no indication as to whether or not the file is digitally signed; I just get the usual "This could be a virus; do you want to run it anyway?" dialog. But without any evidence to base my trust decision on (where it came from, who the publisher was, etc.), what should I do? Of course, the right thing to do would be to delete the file and never install Flash, but I really want to install it so I guess I have to go ahead and run the thing.

What's really frightening though is that there is a "Don't ask me again" option in this dialog... which means that if you check the box you could end up running any old garbage on your system without so much as a single warning. Doesn't sound so secure to me...

So anyway, Flash installs and I can view the Ocean's 12 website OK. But now what if there's a security bug found in Flash and I want to disable it? With Internet Explorer, I can simply set the Internet Zone to "High" security mode (to block all ActiveX controls), or I could go to the Tools -> Manage Add-Ons dialog if I just wanted to disable Flash until an update was available. How do I disable Flash inside Firefox? Good question. I don't see any menu items or Tools -> Options settings, the Tools -> Extensions dialog doesn't help, and Flash isn't even listed in Add / Remove Programs.

According to Google, I have to download yet another unsigned extension to enable the blocking of Flash content. Ho-hum. The first download mirror that the page sent me to gave a 403: Forbidden error; luckily the second mirror worked OK and, once again playing digital Russian Roulette, I installed the extension and rebooted Firefox twice (yes twice) as instructed to install it. To be fair, the extension is pretty cool, but that's not the point: How do I know I didn't just install some terrible malware from a compromised web server? Who owns xmundo.net anyway, and can their admins be trusted? And what if I accidentally browsed to some site hosting a malicious Flash movie whilst trying to download the extension?

(Always remember the Ten Immutable Laws of Security, and in particular Law #1: If a bad guy can persuade you to run his program on your computer, it's not your computer any more.)

To continue my benevolent fairness, I actually think Firefox is a nice browser. It seems to render HTML without any problems, and the tabs are nice for browsing Slashdot. But just because it doesn't currently have any unpatched security vulnerabilities talked about in the press doesn't mean they don't exist (Secunia currently lists three unpatched vulnerabilities, for example).

Mozilla has had its share of security vulnerabilities in the past (just as IE has), and -- despite what the open source folk might say -- Mozilla keeps their security bugs hidden from the public (just like Microsoft does) in order to protect their customers from coming under attack by malicious users. Note that this is not a bad thing; all vendors should treat security bugs responsibly to ensure customers are not put at undue risk. It's just something you should be aware of. Just because you don't see any unpatched security bugs in Bugzilla doesn't mean they don't exist, either.

But the thing that makes me really not trust the browser is that it doesn't matter how secure the original code is if the typical usage pattern of the browser requires users to perform insecure actions.

·Installing Firefox requires downloading an unsigned binary from a random web server

·Installing unsigned extensions is the default action in the Extensions dialog

·There is no way to check the signature on downloaded program files

·There is no obvious way to turn off plug-ins once they are installed

·There is an easy way to bypass the "This might be a virus" dialog

This is what the "Secure Deployment" part of Microsoft's SD3+C campaign is all about; we design and develop secure software, but we make sure that customers can deploy it securely as well.

I personally don't care if people choose to run Firefox or Linux or any other software on their computers -- it's their computer, after all -- but we'll never get past the spyware / adware problem if people continue to think that installing unsigned code from random web sites is A Good Idea.

So, at this point in time, installing (and using) Firefox encourages exactly the sort of behaviour we are trying to steer people away from, and to me that makes it part of the problem, not the solution.

(Thanks to Mike and Robert and the other folk who gave this a once-over before posting; any errors are still mine though ;-) ).

  • well, reading this blog post in IE isn't much better - I can't see any of the images you're supposedly referencing. Maybe it's a problem with your blogging tool?
  • Can't see dialog pics.
  • I love the smell of a flame war in the morning.
  • "Note that this is not a bad thing;"

    When did security by obscurity become a good thing? Someone will always find security holes and exploit them. I beleive in full disclosure and informing the users about the flaws in the software they are using.

    I prefer vendors telling me about their security holes and giving me patches, rather than trying to cover things up behaving as if nothing were the matter...
  • As with all software, you're only safe until someone decides they want to use it as a backdoor entry point. It's only a matter of time before people realize that FF is just as insecure as IE. This will occur naturally as the number of users switch to FF, ironically, to avoid the security flaws on IE.

    I remember a discussion I had in my software engineering class senior year regarding OSS. My argument basically amounted to using the analogy that OSS represents a big security hole since it's esssentially a blueprint to your vault (unless you have modifid the original source and made it more secure). The counter argument was that since it was OSS, the bugs would be caught faster by "enthusiasts" and user groups and thus fixed faster. Well, that's dependent on three factors:

    1. Do you trust these "enthusiasts"? I know that a lot of them are well educated, Phd wielding, CS gurus. But I also know that there are a bunch of incompetent/untrustworthy individuals as well.

    2. Do you trust that all bugs will be reported by the people that find them instead of being exploited?

    3. Do you trust all users to immediately get the new, patched source/binaries?
  • With my previous comment out of the way (sorry, thought of this later), I do like FF for two reasons:

    1. DOM explorer
    2. Javascript Console
    3. Better standards compliance

    These three, combined, make it a DHTML/Web UI developers *dream* to work with.
  • Excellent article. I never thought about it when installing FF, tho I DO think about those kind of things when using IE. Go figure.

    (that said, I use both for very different, specific reasons. Add tabs, opening a list of bookmarks in tabs, and put popup blocking in the IE6 on Win2K3, and I'm set)

    :)

    Cheers
  • If you want to make sure that you get
    a clean, Mozilla approved Firefox, you
    *can* do that: go to
    http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.0/
    (reachable via the download section on
    the Firefox and Mozilla websites).
    This allows you to download the Firefox
    versions for you locale and OS.
    And: it offers 3 ways of ensuring that
    the binary you get is the one published by mozilla
    - MD5 Sums of all binaries
    - SHA1 Sums (if you don't trust MD5)
    - GnuPG/PGP signatures for each binary;

    So: you *can* check the validity
    of your Firefox binary.

    BTW: "getting a Versign Code Signing
    cert" is just as safe as these solutions (It's not like a malicious
    attacker can't obtain a Verisign
    cert. It's not like
    any end user even knows what a cert
    is... so they surely can't decide
    whether it's right or not).
  • Charles -- you have a buffer overflow there! You only allocated enough space for two reasons, but tried to stuff three into it ;-)
  • murphee -- thanks for the link; did the NYT ad tell people what SHA1 sums were and how to use them to verify the correctness of their download? (And if it did... did anyone understand?)
  • About that unsigned amazon toolbar pkg, I had nothing but trouble getting firefox to recognize my signed xpi's. I've got latest tools and everything (proof, it detects the signature and works in Netscape 7), but something's amiss in FireFox-land. That's why our website will detect firefox and offer the unsigned version when we roll out...

    Help or follow-up to my e-mail...

    -Michael Scholz
  • Marcus -- to each his own. There are strong arguments both for and against Full Disclosure, but I think I'll stick to one controversial blog a day, thankyou very much ;-)
  • Fantastic post
  • You made some good points...

    However. One of the dialogs that popped up indicates a problem with 7-zip, not with Firefox. Pehaps the problem is that the entire download did not complete... which isn't really a problem with Firefox.

    Another point is the dialog box with the empty message. I have seen this problem before and it had to do with bugs in McAffee's overflow detection. This bug should be fixed in updated version of VirusScan.

    There are ways to verify the authenticity of a downloaded executable besides buying a trusted certificate from Verisign. They could post the hash information on a website (with an SSL certificate) which you could verify against. (This is admittedly less convenient).

    Many Linux package deployement programs verify against trusted hashes, etc.

    It is important to point out that extremely respected security analysts such as Bruce Schnier recomment against using Internet Explorer, Period.

    Firefox is often cited as a good alternative.

    So if I combine your advice with Bruce Schnier's, it boils down to:

    1. Be diligent when downloading Firefox to ensure you are getting it from the right source.

    2. Do not use any untrusted plugins.

    3. Do not use IE except when absolutely necessary to download your intial copy of Firefox.
  • Charles Chen says:

    "1. Do you trust these "enthusiasts"? I know that a lot of them are well educated, Phd wielding, CS gurus. But I also know that there are a bunch of incompetent/untrustworthy individuals as well.

    2. Do you trust that all bugs will be reported by the people that find them instead of being exploited?

    3. Do you trust all users to immediately get the new, patched source/binaries? "

    -----

    1. Peer review is an important process within Open Source. In Mozilla projects, nothing gets checked in without a review and superreview from project leaders.

    2. The source is fully open and the program is used by millions. The chances that a bug will be found by a single person are minute.

    3. Firefox includes an auto-update mechanism to ensure users are patched at all times.

    Really, if you are going to criticise, please do some research first.
Page 1 of 94 (1,408 items) 12345»