Break into my email: get $10,000. Here is my username and password.
strongwebmail.com
strongwebmail.com
The biggest security risk we found wasn't the second form of authentication; it was making sure it was just as hard to add other phone numbers. Then there were instances of disconnected phones, dead cell phones, etc to deal with.
If these guys can make it all work successfully and be profitable, more power to them; it's an uphill battle for sure.
I'm not working on it any more, so I'll offer some free suggestions to them:
* Offer other means of authentication - biometric seems pretty popular, but you lose mobility. Rolling keycode generators are also nice (and not terrible to implement).
* Double-check your security at the data center. I was working on secure data storage, not email, so the problem set was slightly different. However, there was some technology we were looking at licensing that used a physical air-gap on a router to remove data from the network when it wasn't authorized to be online. Probably not economical for individual email accounts; but possibly useful for bigger clients. As an example, years ago I was talking to someone at a Proctor & Gamble research facility. All of their computers used detachable hard drives (well, Iomega Jaz drives, but still) and at the end of the day, every drive got removed from the computer and locked into a safe. That way if there was an intrusion, the data was totally inaccessible.
* Add an sms interface that would just text someone a keycode (similar to a rolling code generator, but would just require a cell phone).
That's literally, like, an entire FRACTION of what an application penetration test costs!
They must really be serious!
[quick edit: I really hate talking about numbers here, because if you have some bootstrapped YC-style company and you're worried about security, I'd love to think you could reach out to us and not have us try to get into you for tens of thousands of dollars --- but for an actual security assessment with a public statement at the end of it this is way, way south of what the market pays]
Some Open Source projects have millions of users, and so security is obviously a concern...I've noticed in our own project that we occasionally get penetration testing reports from security companies out of the blue (I guess because Webmin is high profile enough, and is potentially dangerous enough, to be on everyone's radar), but how would one get a new project or product onto the radar? Obviously, Open Source projects generally don't have 10k*N dollars to spend.
I ask because I've recently thought of doing something along these lines for our own stuff. Not because I want publicity, but because we really want to know about any issues.
It's really kind of tricky. I've been working with my team for the past couple months on an "Indie SDLC" (SDLC is the industry's jargon term for secure development); we gave a talk on it at C4 last August. Rentzsch may post the video someday, and I'll be sure to post it here.
I have a shortlist of things I think every company should be doing now on security:
1. Stop talking about security. (Don't be a target).
2. Train every developer on SQL Injection and Cross-Site Scripting, and --- if they're writing C code --- Integer Overflows.
3. Avoid a set of "features that always doom dev teams", including encryption, password storage, browser plugins that inject into the DOM, templating, installers, network listeners, and file upload/download.
4. Deploy the "rubber chickens" that make users feel safe --- SSL, big long random URLs, little lock icons, and if you really need to, something like Hackersafe (which is snake oil, but whatever).
5. Screw with amateur web pests --- use your own magic version of base64 with some of the characters swapped, use 3DES for something with swapped-around s-boxes, etc.
6. Make time in QA for every release to fuzz. Fuzzing is all you really need to do for security QA. Buy a copy of Burp Suite and run the "Intruder" on every page. Write your own fuzzer for any custom formats you handle.
7. For god's sake have a security contact and a /security URL on your site. Post a GPG key. Publish advisories when people find things. Act like you've handled this before.
(Obviously we fleshed a lot of this out, and the fact that we haven't posted it yet tells you that I'm not totally in love with where it is now).
Getting someone who bills N x $100 an hour to look at your app for free, even if it's open source, will probably be tricky. With the good firms (I like to think we're one of them), advice is free, so by all means reach out with lots of questions. If the question is "how can I get my app looked at without spending $50,000", well, that's a good question! There's probably something creative you can do.
3. Avoid a set of "features that always doom dev teams", including encryption, password storage, browser plugins that inject into the DOM, templating, installers, network listeners, and file upload/download.
We're doomed. All but two of these are present in every one of our projects. (I kid about being doomed. Mostly. We do have 11+ years of being a prime target for attacks to give us some confidence that we're doing OK. But we do unavoidably have to handle most of those features that always doom dev teams.)
5. Screw with amateur web pests --- use your own magic version of base64 with some of the characters swapped, use 3DES for something with swapped-around s-boxes, etc.
Isn't fiddling with the encryption, without understanding, what got Debian into trouble a while back with OpenSSL? Perhaps I don't even know enough to know what you're suggesting when you say "3DES with swapped-around s-boxes".
Buy a copy of Burp Suite and run the "Intruder" on every page.
I'd never heard of Burp Suite before. I had no idea there was an automated tool for this stuff (and at a reasonable price). Awesome.
* You can intercept them in the requirements phase and either refactor your design so you aren't as exposed to them (maybe you don't really need file upload, maybe you can use S3, etc).
* You can make sure junior devs don't get assigned the scary features (a big chunk of the stupid flaws we find are accompanied with the "oh that was the new developer who did that" excuse).
* You can triage those features in code review and QA.
There is a big but apparently subtle difference between "encryption you rely on" and "rubber chicken encryption" (you can see now why I'm not in love with our Indie SDLC yet). Yes, you never want to dick around with encryption for your single-signon tokens --- use GPGME or Keyczar or something. But once you've secured your app, you can add obfuscation to reduce the likelihood that people will jump on your mistakes.
And yes. If you sell a web app commercially, you should own a copy of Burp. For what it does, it's amazingly cheap (like $150). It is the industry standard web pest tool.
Just like the LifeLock CEO who gave out his SSN to show how effective they were at preventing identity theft.
"I have found a critical vulnerability in this application, which I will demonstrate under NDA to any reporter who requires verification. I will under no circumstances reveal this vulnerability to the vendor or to any other party."
EDIT: it seems that the login/password thing it's fake so probably nobody can do it (or he was receiving too much calls)
Great. Users will love receiving calls at all hours as script kiddies in Russia try to log in to their accounts.
"Break into my email: get $10,000. Here is my username and password. Username: CEO@StrongWebmail.com Password: Mustang85"
Great! Let's give it a go:
Error Logging In
We could not log you into your account because of the following error(s):
The username or password you entered is incorrect, or your account has been suspended/closed.
Guess the $10,000 is safe and sound.There is no data sent to the sever when you enter a test authentication code, it just automatically says "Invalid code"...
Maybe if they texted him a code he had to type in, it would be more secure, but then it would be simple enough to brute force all of the codes, or find the seed and generation mechanism.
1) Compromise targets computer using some known exploit
2) Retrieve cookie
3) Profit
"In addition to protection from fraudsters, StrongWebmail.com protects against friendly-fraud where a boss or spouse snoops on your email. If one of these people tries to log into your account, you’ll receive a phone call alerting you that someone is trying to access your email (like a silent alarm)."
Seems to indicate that failed attempts would also text you?
There are many things that can go wrong here, based on my previous experience dealing with these systems, but most require client-side subversion, whether it is malware, cross-site scripting, or cross-site request forgery. (For example, finding a CSRF vuln that allows you to update the phone number to your own and compelling your victim to visit the link through a variety of techniques.)
My guess would be by spoofing the CEO's home IP & cookie to bypass the verification, based on this paragraph from the site:
"Plus, users only need to receive a verification call when they are logging in from an unrecognized computer. When logging in from a home or work computer, a cookie can be stored so that no verification call is required."
Does that seem like a big hole to anyone else?
There are also a bunch of unknowns. Are there any direct attacks (SQL injection, privilege escalation, etc) on the StrongWebmail site? What sort of datacenter is it in (alchemy.net, which are HIPAA compliant, which should be pretty safe)? Are the challenges generated in a cryptographically secure manner? How secure is the CEO's home machine? Does the CEO purge cookies at the end of the session? Does it count if I can manage to redirect his e-mail elsewhere instead (which can be done with well-known DNS exploits)?
Part of the defense here is that the prize is small enough that it's not worth trying many of the more elaborate tricks (like attempting to break the PRNG for the keys, if any).
I say that here, the weak points are the user and the cellphone; I think that the barriers to usage that the site sets up will most likely deter all but the most paranoid users from using it.
A vulnerability in Google Mail that would let you break anyone's account? A six-figure finding. High-profile stupidity (like people with trivially guessable password reset questions) aside, nobody has more incentive to protect your email than Google, Yahoo, and Microsoft do. They're probably better at it than some startup is, too; they've sure spent enough on it.
These guys are at least clueless, probably unprofessional, perhaps even desperate or unethical. No thanks.
Fellow HNers: Don't gobble up cheap marketing (link-)bait. This story has too many upvotes.
The problem is that folks in security tend to forget that they have to pay attention to the business side of things. It's e-mail.
A certificate plus pass-phrase, and a three attempt fall-back to mandatory phone authentication would be way more than enough assuming that everything under the hood was sound (DNS, SSL, etc ... which have all been shown to have weaknesses recently). Why hammer your way through a steel door when you break open the single pane window in the basement.
3 chars. There are only 1,000 ~ 250,000 combinations depending on if they are alphanumeric or not, and if they are case sensitive.
They should make the key expire after about a minute (or 3 attempts) to slow brute forcing.
Anyone else thinking someone that needs that much security is going to have a lot of mail?
So all an attacker needs to do is get access to your home or work computer...
BTW, has anyone heard of those awesome Medeco locks? I heard that they can't be picked. That is so cool!
edit: I wonder what ELSE the CEO uses this password for...
Try XSS.