Posted
by
Soulskillon Friday August 17, 2012 @05:10PM
from the working-as-intend-ish dept.

Trailrunner7 writes "The iPhone SMS app contains a quirky bug that could allow someone to send a user a text message that appears to come from any number that the sender specifies. The researcher who discovered the bug said it could be used by attackers to spoof messages from a bank or credit card company and send the victim to a target site controlled by the attacker. The issue lies in the way iOS implements a section of the SMS message called User Data Header, which has a number of options, one of which allows the user to change the phone number that the text message appears to come from. The advent of mobile banking apps, some of which use SMS messages for out-of-band authentication, makes this kind of attack vector perhaps more worrisome and useful for attackers than it would seem at first blush."

Lovely fail there since a lot of sites use SMS for some sort of authentication, Google, and Blizzard among them.

Yes, but even if you can spoof the sms from header? How are you going to guess the code they send you?

Notice, the same thing can be done with emails and even http requests. It's easy to forge the headers on those, but if a site implements only half of a handshake without sending back a token to the originating address for two-way verification, then it's the web site that is deemed insecure, not the client.

Notice, the same thing can be done with emails and even http requests. It's easy to forge the headers on those, but if a site implements only half of a handshake without sending back a token to the originating address for two-way verification...

E-mail and HTTP requests don't do handshaking in the manner in which you appear to be thinking. There is no two-way verification involved.

HTTP != SSL, and while there are certain things that can be done to help verify identity with e-mail (SPF, reverse DNS, et cetera), these aren't - as much as people would like them to be - part of SMTP itself.

Yes, but even if you can spoof the sms from header? How are you going to guess the code they send you?

Ah ok! Now, I get it. I had not thought of that scenario. I was thinking of the account set up process when they first send you an email, or an sms, with a code in there for you to reenter in the web site, or send back to them.

You can add callerid on phone calls which is funnily trusted enough by banks and others, when you activate your credit card for example. Callerid is easily spoofed if you get a VOIP account for a few cents.

Many VOIP providers even give you a 25 cents credit to try the system for free without verifying your identity. Yet, many people believe callerid as the plain truth when they see a call coming in.

There is so many weak authentication scheme that are trusted by the majority of people and institutions, some

Any authentication that authenticates the user using SMS (which is the only SMS authentication I'm aware of) will be unaffected, since it isn't like sending a fake code that looks like it is from Google will do anything more than a fake code from some random number. No, the only case where it can do real damage is in phishing attacks, by sending the user to a fake site to do a password reset or the like. Which, really, people should have learned not to do anyways, with how often stuff like that happens in e

My bank has made a big deal about having an iPhone app, being able to do photo deposits of checks with an iPhone, etc. So I can see both the motivation for exploiting this and how such an exploit might be successful.

Digital signatures can also be faked and sometimes even forged... it's just a bit more difficult.Are you really going to suspect a perfectly legit looking email signed as coming from "Blizzard Entertainment Plc."? Unless you happen to already know that all communication from them comes from "Blizzard Entertainment Corp." the signature likely wouldn't help much. Plus, I've seen a LOT of corporate stuff using signatures that are expired or do not belong to them -- and this is legitimate stuff.

Lovely fail there since a lot of sites use SMS for some sort of authentication, Google, and Blizzard among them.

So? This doesn't affect them I don't think--the SMS based authentication I've seen with my bank and Google all involve them sending me a code which I enter on their site. This issue wouldn't cause any problems with that.

This doesn't affect them I don't think--the SMS based authentication I've seen with my bank and Google all involve them sending me a code which I enter on their site. This issue wouldn't cause any problems with that.

This being Slashdot, you are probably fairly immune to phishing attacks by virtue of approaching every unexpected communique with a measured level of mistrust. However, the rest of the world is not necessarily so-afflicted.

It will affect folks exactly as much as email-based phishing attacks wi

"a lot of sites use SMS for some sort of authentication, Google, and Blizzard among them"

Their problem. They have poorly designed systems. The spoof mentioned is no different from what anyone can do with email, simply.

There are legitimate reasons to allow a sender to signify a different "from" number. One example might be someone using Google Voice, where they want to send an SMS via the carriers network (where a different phone number is associated), but have it appear as coming from the GV number to the recipient (or same, via an SMS gateway from a PC, etc.).

For security, similar to the common password reset procedures via email, sites might accept a request via SMS, but then return a necessary confirmation code to the "from" number. Even if you can send an SMS which appears to be from an arbitrary number, you can't get the reply (and confirmation code) unless you're actually associated with that number.

I'm no apple fanboy by any stretch of the imagination, but this seems like a security vulnerability with the cell phone system, not with the app. No client should ever be trusted in a network security context, and this is no different. It may have shown up as a bug in the iPhone software, but it is the cell networks that should have protection against these sorts of things...

It is sort of design flaw in the cell phone system that the phone has any say in the matter, but that's a done deal and now this is a bug in the phone. This is the sort of thing that should be firmware-controlled.

Since it's relatively easy to 'spoof' the caller-id that is transmitted when you make a call (so your call appears to come from someone else), it seems rather surprising a similar spoof of the ID on a txt msg would be likewise easy.

Of course I don't know how to do the former but I watched Mitnick do it on Leo Laporte's TechTV show in about 30 seconds...

I also don't know that SMS would be likewise spoofable, but it would seem to follow since both are going over the same network no?

The phone companies claimed you couldn't do it either. Then Mitnick showed them that, yes in fact you could.

Hell he was even in court as an expert witness and flatly refuted the Phone Co. rep who said X couldn't be done and he asked for a short recess and got his documentation and then the Rep had to admit yes X could be done.

I'll take the word of someone who 'owned' the system rather than someone paid by the system to talk about the system.

No not that insane, VOIP providers allow you to set the callerid to whatever you want so you can set the callerid to the real callerid on calling card platforms for example. Trusting callerid and using it as an authentication mean is insane although...

No, the receiving IPhone is using data that comes from the sending phone rather than the tower. This is definitely an IPhone issue. This is why Apple is pushing for security so hard recently: it was laughable a few years ago, as is trusting data from a remote phone.

No, the receiving IPhone is using data that comes from the sending phone rather than the tower. This is definitely an IPhone issue.

Not limited to iPhone. I have yet to find an Android SMS app that doesn't discard the sending "number" in favor of anything that looks like an email address in the body of the message.

T-Mobile has an email to SMS gateway that copies the From and Subject headers into the front of the message separated by '/'. They send these SMS from a number in the 3-4 thousand range, and keep a back-mapping so a reply to that SMS number will go back to the email sender. EVERY SMS app I've seen on Android pulls the email address from the body of the SMS message and throws away the reply-to number. That means I can never reply to an email I get via SMS, except through the phone's email app. Which has a different email address associated with it.

Not the same thing at all. That appears to be a VOIP app that runs on your phone, creating its own phone number from which you can send text messages (not sure if they're SMS or MMS or what.) I'm talking about being able to send SMS TO the number an SMS came from, and not having that number stripped from the incoming message.

It isn't. This is the SMS version of a reply-to field. There is no problem if the actual source AND the reply-to are displayed. The problem comes in when the iPhone shows the reply-to number as the source.

Sorta like if you hang your house key on a hook next to the doorknob on the outside, it isn't the door or the lock that is defective.

The problem comes in when the iPhone shows the reply-to number as the source.

No, the problem is when the phone (Android in my case) throws away the reply-to number and displays some email address. That breaks the ability to reply via SMS. If you don't have the number, you don't know what number to use to reply, huh?

That reminds me: I've got to make myself a bunch of random keys and hang them around my neighbours house.

I wouldn't do it to my own, as anyone attempting to use them might eventually get frustrated and just break the lock or smash a window....

I agree though; the problem isn't that the iPhone can set the originating SMS value, it's that the receiving devices choose to trust the end user over the tower's data (which they also receive as part of the handshake).

Correct, the SMS specification allows for one to set their own header. All you have to do is write your own app to send SMS'es or use any of the random SMS gateways all which allow you to set your from field. Even Google Voice allows you to do it (although they verify your phone number first)

I don't understand why people even do banking on a device that is so easily lost. And before people start screaming at me, please know that this is coming from someone who had his bank account broken into from using only legitimate ATMs from actual banks(didn't even know there was such a thing as a card skimmer).

Because whole drive encryption guarantees they can't get in. While remote wipe is throwing all caution to the wind and hoping for the best.

Ideally the ability to shut down an encrypted laptop should be in place in case it's stolen while unlocked. But encryption is the only thing that can really protect data that's in the hands of a thief.

What part of "infinite time to brute force the password" did I not make clear?

It's a moot point to talk about infinite time. You might as talk about an attacker using magic spells because neither exist. If someone want's dedicate thousands of centuries trying to break into my laptop I say let them at it. They are going to run out of time, which is certainly not infinite.

In the statistically impossible event that they did decrypt my drive what they now have is.... an encrypted drive. In total they need to decrypt it three times to get at the data.

What part of "infinite time to brute force the password" did I not make clear?

It's a moot point to talk about infinite time. You might as talk about an attacker using magic spells because neither exist. If someone want's dedicate thousands of centuries trying to break into my laptop I say let them at it. They are going to run out of time, which is certainly not infinite.

In the statistically impossible event that they did decrypt my drive what they now have is.... an encrypted drive. In total they need to decrypt it three times to get at the data.

Actually, time is infinite.

You are finite, I am finite, the entire planet is finite. Time is infinite.

But I don't ever buy into something that is "uncrackable". We've had claims about "uncrackable" encryption before and every time technology improves or some flaw is found that allows the encryption to be cracked in short order. So to claim any encryption is "uncrackable" is foolish because it assumes that cracking technology and methods will not improve in the future.

Also when it comes to iphones, most people have a short 4 digit passcode using numbers only, off the top of my head that's about 5000 ish permutations. Modern cracking software will have that done in an hour.

The iPhone like Windows Mobile introduces an increasing delay between incorrect attemps so guessing even a four digit passcode is unlikely. Local wipe after 10 attempts seals the deal. I did recently hear about a claim that somone got around the delays but it's too late to look for a link...

So ridiculously easy to get around it's not funny.

First off, if you have physical access to the device (which was assumed by the GP, the phone was stolen) then you simply make a copy of it and crack the copy in an emulator, actually you crack the copy of the copy so if it gets wiped you just start a new copy and continue cracking. So at worse, this increases the crack time to a few hours as disk IO becomes a problem.

Once I have your device, I simply disconnect it from the network. Plug it into a machine I control, copy the data wholesale (bit by bit) and take my time on reading it. Both Android and Iphone have a bootloader that allows this. As all the Jailbreaking groups have shown us, it's trivial to break Apple's security.

Phones are emphatically not safe, any data you store on there is much easier for an attacker to get to simply because an attacker can get a phone easier than your laptop

I don't understand why people even do banking on a device that is so easily lost.

So we avoid situations like yours below.

And before people start screaming at me, please know that this is coming from someone who had his bank account broken into from using only legitimate ATMs from actual banks(didn't even know there was such a thing as a card skimmer).

How long did it take *you* to find out someone was using your account? And if I do lose my phone, I'm assuming that my pin isn't a good means of security either, but usually if my phone is missing, I'll notice that it is missing within the hour.

Now I'm not saying my set up is secure by any means, it's not, but then again

Not sure why it posted as AC.
It took me a day. When I tried to use atm card and found that my entire bank account was emptied out. The bank was supposed to call me, it then took over 1 month to get my money back, thank goodness I had friends and family to help me out. I made damn well sure to never use that bank again.
I'm not talking about security through obscurity, where did I talk about that?
All I asked was why do people trust doing banking on their cell phone or any electronic device? I don't use

I don't understand why people even do banking on a device that is so easily lost. And before people start screaming at me, please know that this is coming from someone who had his bank account broken into from using only legitimate ATMs from actual banks(didn't even know there was such a thing as a card skimmer).

This is why I don't use "apps" for banking on my mobile.

I do use my mobile for banking but I use the banks website and never, ever store my username or password in the device itself (this is true for all devices I bank on). This way they never have a complete picture of my account number, let alone my password. They may know I bank with NAB from my bookmarks and browser history but that's it.
With a decent mobile site, which my bank has a dedicated banking application is completely superfluou

As long as you are allowed to mess with the SMS message header, you can do this on ANY phone - it's part of the GSM standard - Small Message Service was intended for testing & internal use, nowhere is stated that the "Sender" field must be the actual sending phone number. In fact, that field is alphanumerical, you can put anything in there, not just numbers. Also, there's nothing in the GSM network to prevent this, the message is routed by destination, not by sender.

I was sending "faked" messages like those over 10 years ago using the "service" menus on old Nokia & Motorola GSM phones.

Anyone relying on those SMS headers for authentication is either stupid or malicious.

Actually, there is something the GSM network can do. All messages are routed through an SMSC, and that knows who you are, so there is nothing stopping the network from ignoring what you say and set what it knows about you as the sender instead.Infact, most sane networks do this.

Not that it makes any difference though, since any network that has an agreement with your network can send any sender it wants, and there are hundreds of networks out there you should never trust what the sender of an SMS says.

This is no different that faking caller id info been able to do that since i first got access to a isdn line (caller id info is send as part of call setup on pretty much any digital phone system) that does not mean it's untraceable.

As to security if you bank is doing more than sending you a one time pin to your cellphone they have issues. Granted a shared secret pin generator is probably a better idea but sending a sms works to nearly everything now no app required on the client side.

The only thing SMS authentication stuff is used for is for the bank/etc to send you an SMS with a code in it that you need to enter to login. How does someone else being send you a non-working code at a time you likely aren't trying to login to your bank/etc anyway possibly matter in the slightest?

Sure some people probably though they could trust the sender information on an SMS, and it not being might enable some shenanigans (sending X a rude/etc message that seems to be from Y), but I can't see how it dam

The method is:1) send you a fake email telling you to log into your account to update your settings/read the policy change/etc.2) link to a phishing site, which pulls all the assets from the legit bank, but redirects the password form3) trigger an SMS event just like the real bank, to send you the token needed to log in to the phishing site4) harvest your account info.5) Profit!

However, it'd make more sense to just make the phishing site a proxy and let the actual bank send the SMS token to the customer. That way, the customer logs in for them, and they can then do whatever they want....

The cell phone system itself doesn't look in the user data header. It's in the text area, and an in-band extension to SMS. Many programmable phones let applications send whatever they want in the user data header.

This is only a problem for phones and SMS gateways dumb enough to believe any ID information in the user data header. Now if Apple displays the source in the user data header in place of the telco-provided source, they're doing it wrong.

It sounds like following standard practices are in order. You should have all secure sites you visit bookmarked. Safari and chrome synchs the bookmarks between devices. One should never go to a secure site from an email or text. I can't tell you how may emails I get trying to get me to log into ebay or paypal or a bank using a almost legitimate URL.

The one thing I use SMS for is as a one time pad. A code is sent to me, which I enter as a secondary login credential. Nothing in the text leads me to th

Aren't you glad you're in the walled garden? Look who you've been walled in with...

Yes, I am worried we're walled in with the GSM standard...

That's the issue here, of course.

But mentioning the iPhone in relation to stuff like this is this season's "on a computer!!!!" appended to the end of a "new" patent that was all the rage a few years ago.

Spoofed headers in SMS messages have been possible since the adoption of the GSM standard - the SMS system was simply never designed with its eventual use in mind in the first place. No one imagined users would be using it to send messages to each ot

It isn't new, and it isn't an iPone app bug, it's the way the SMS system was built. The process that most SMS pin things work is that you are accessing the bank via another means and the bank sends you a pin via SMS, faking the sender serves no purpose. Sending an SMS requesting your details should be ignored, like similar emails. The researcher who 'discovered' the bug needs to learn about GSM and SMS.

"The issue lies in the way iOS implements a section of the SMS message called User Data Header, which has a number of options, one of which allows the user to change the phone number that the text message appears to come from."

That's not a security flaw, that's just unbelievably stupid design. Didn't they learn how big of a problem caller ID spoofing was? It should never have been put in there. I guess Apple really is sincerely bad at security.

Totally non-authenticated communication method found to be not authenticated ! More details at 11.

I can't believe that this is news to anyone. Do you really think that people who send marketing, information or run 'adult' services via SMS have a huge bank of mobile handsets with people sitting typing messages into them?

No - they have computers that connect to a bulk SMS supplier (e.g. the company I used to work for http://www.dialogue.net/sms_toolkit/ [dialogue.net]) that allows them to send SMS with any Originating Address that they choose whether that's someone's phone, a shortcode or the name of the company.

Mobile phone operators do sometimes implement limits on what can be set for the O.A. for messages entering their network but there just isn't the infrastructure in place to authenticate what is set for the O.A. within the network.