Author Archives: Ruben Olsen

VoIP on the iPhone and iPod Touch – a security warning

iVoIP clientsAt first sight, using any VoIP client on the iPhone or the iPod Touch (a.k.a. iDevices) may seem like a uninteresting thing. The reason for this is that Apple does not allow 3rd party applications to run in the background. So when a user close down his iVoIP Client he will not be able to receive any calls at all, thus defeating the reason for using VoIP on these devices in the first place.

However, if we take a look at some of the VoIP clients offerings available we notice that a few of these clients have the ability to receive incoming calls, even when the software it self is not running.

At first sight this seems to be a Good Thing – however, there are severe security implications by doing this. Users will in fact willingly, put them self under a man-in-the-middle attack.

Continue reading

Your dial plan, the last line of defence – part 1

We all know the bad ugly truth: Most people do not update their PBX software to handle the latest security vulnerabilities. As long as your PBX can receive incoming client connections you are at risk. Not because you have given your user weak user name / password combinations, but because your PBX has a security flaw you did not know about.

Common solutions

Let’s face it: PBX security is not as sexy as operating systems or web security. When did you last read about a security flaw in a PBX product in the main stream IT-press? Compare this to any mention of a OS or web security hole.

There are a couple of things you can do to make your PBX installation as secure as possible. The most obvious one is to have a strong password regime. There are also those who believe that strong user names are also the way to go. I will not deny that this is a bad thing per se, but it is not very user friendly.

Why should we care about user friendly user names? In most places, the User Agents (UAs) are either automatically provisioned, or provisioned by hand. However, there is a emerging trend dealing with mobile UAs (one of the most popular is probably Fring). AND  – let’s not forget the popularity of desktop based soft phones. Unless you want to pay for a rebranded “telco” version of said clients, these needs to be configured by hand. In most cases this is done by the user of the mobile phone them self. Having to enter AVeryLongAndEnterpricyUserName is painful, even on a QWERTY based phone. It can even be bothersome for some users to enter this on their desktop soft phone.

There is a few reaons why Long And Windy User Names are a Good Thing. The primary reason is often said to make life difficult for brute force attacks.

Another, smarter, way, to prevent external mis-use of your phone system is to implement a “one strike and you are suspended” kind of rule. Basically this is done by refusing to deal with IP-addresses which have created a failed SIP registration (i.e. a bad user name / password combination). I will not go into lengthy details on how to do this, the method is outlined in A Simple Asterisk Based Toll Fraud Prevention Script by J. Oquendo. Even if the example is for Asterisk, it can be adapted to suit any telephony platform that can be programmed.

The solutions described in this posting is not limited to VoIP – it can be used if your telecom provider is giving you a analogue or a digital line.

Another layer of security

Unless the host where the PBX software is running, is broken into. Perpetrators trying to dial out, will be bound to how your dial plan is constructed. I will not go into the the theoretical case where a perpetrator can circumvent the dial plan due to a bug in the PBX software.

If you create your own dial plan from the ground: Do you check your outgoing numbers?
If you use a plug and play system like FreePBX, PBX In A Flash, et.al. – do the makers of your chosen system implement such checks?

Probably not.

And, more importantly, neither does your telecom operator.

In the good old days of incumbent, most incumbent had a service where you could subscribe (either for free or not) to a service which will prevent ougoing calls to premium number. According to rumors, some of the bigger telcos could even block the ability to call premium numbers in other countries.

The last line of defense should be to check which kind of number your users (legitimate or illegitimate) dials.

There are around 30 categories of numbers in existence today: fixed geographic numbers, non geographic numbers, cell phone number, satellite numbers, local rate numbers, preminum rate numbers, shared cost numbers, free phone numbers, VoIP telephone numbers, voice mail numbers, etc.

The solution is obviously to just dial numbers which are in a few categories: fixed geographic numbers, non geographic numbers, VoIP numbers and cell phone numbers. If your legitimate users need to dial numbers not in your chosen categories, you’ll add exceptions for these numbers.

The CNS table

The best way to keep this information is in a database table. Common names are CNS table or E.164 Number Plan, or Subscriber Number table. I prefer to use CNS table, since most sources use this name. As a side effect: You can also use such tables to check if your ITSP is billing you correctly.

The table needs at least to have the following fields:

  • CNS, which contains a E.164 based number (Country Code – CC, National Destincation Code – NDC, and Subscriber Number – SN). For more details, see the ITU E.164 recommendation , which is available online.
  • Category, which contains the type of number we are dealing with (fixed, mobile, etc).

This is the bare minimum – for your own convenience, you could also add a few other fields like country code, national destination code, location, etc.

Let’s use data from the United Kingdom as an example:

The country code for UK is 44, thus all numbers starts with 44 (Category = COUNTRY).

If the NDC starts with 113, we are in the city of Leeds – i.e. a Fixed Geographical Number (Category = FIXED).
So a entry in the CNS field containing 44113 is OK to dial.

NDCs starting with 114 is Sheffields, 115 is Notthingham, etc. The corresponding entries in the CNS field will thus be 44114 and 44115, both the Category = FIXED.

If a NDC starts with 5, this is a indication that the number is a VoIP number (Category = VOIP). However, this is not quite true given that the NDC of 56 inicates that the number is really a Electronic Service (ESERV). Subscriber numbers within 4456 may thus be somthing else than VOIP, and we will not dial these numbers.

In reality, the CNS table is, as we will see bellow, a table of exceptions.

So basically before dialing your VoIP provider with a number, you check if the the begining of the number matches the longest string stored in the CNS field. Never store your phone number in anything else than string-fiels – and rember that an E.164 number longer than 15 numbers, is a oddity.

Lets say I want to dial a UK phone number starting with 4456123…. – since we do have a entry in the CNS field for 4456, we see that the category is ESERV, and not FIXED, nor MOBILE, nor VOIP. We don’t dial that number then.

If I want to dial a phone number starting with 4455123…. – this number will match the much wider CNS of just 445 where category = VOIP. This number is thus deemed to be safe to dial.

As you now see, we do not have to have every known number in a country – only the most matching exceptions.

CAVEAT: If the number you try to dial can not be looked up in the CNS field, and you default to allowing dialing to numbers where category = COUNTRY, remenber that 449 will match with the CNS = 44, unless you have a 449 in the CNS field. For you non UK readers: 449 is in general UK premium numbers, and you do not want to let your users dial those. The morale is to be very, very carefull when you populate your CNS table.

Get the CNS data

You will probably have no problems with your own country’s dial plan – but what about other countries? If you are in the situation that your business does not need to call foreign numbers – then good for you. How ever, a lot companies do business with entities outside their own country.

The answer: Get yourself an international dial plan.

There are at least 4 sources of such data: Your telecom provider, a community effort and 2 commercial offerings.

The worst source could be your telecom provider.It should be the best source, but customer services will probably not understand what you want. Ask them for a detailed CNS list. If they are any good, they will provide you with their internal CNS list which they use for billing, but also routing, purposes (minus certain really internal information). Do not be surprised if they reply that for security matters, we can not give you such a list. Most smaller VoIP operators (simple resellers) will plainly not understand what you want. The best you can hope for is to get their price list in a format not PDF. You can not really trust this information, because your telecom opeator earns money to let you dial any number – they have no reason not to stop you dialing premium numbers since they get their share of the traffic. Even if you ask them what happen if you dial a premium number in another country, will this be billed as a call to a fixed line? – Their answer will probably be “yes” – but when your bill comes inn, you have been charged premium. There are providers out there which will give you a detailed  price plan (with CNS information) with the added bonus of not carrying traffic to destinations not mentioned in their price list.

There was at one time a community effort going on at http://www.numberplan.org/. It is some time since I checked this site, and at the time of writing this article, the site appears to be down. If this effort is down for good, I do hope that someone will re-establish such a project.

There are two commercial offerings, both European: International Numbering Plans based in Holland, and  Business Solutions from Italy.

In my dealings with these two entities, it seems that International Numbering Plans is really a single individual, where as Business Solutions is a company with more than one employee.

Both companies data sets will give you categories. The last time I did some quality checks on their datasets (comparing the numbering plans for Norway, Sweden, Denmark, UK, Germany and Holland) – there where very few discrepancies between the data sets. Except for a few minor bugs (not related to permium numbers) compared to the official number plans for the mentioned countries – both companies will provide you with the data you need.

Both companies get their data by contacting various official telecom bodies and telecom operators. The update frequency can be a bit erratic – at least with regards to the Dutch offering (i.e. if you need your data during holiday time, be prepared to wait for a few weeks).

Caveat: You must take into account how the data is licenced. Before using data from any of the comercial sources – check with them if your use is okay. This is not nessecary when getting a CNS like price list from your telecom provider.

Given the quality of what both companies deliver – you can safely chose either to cover your needs.

In part two of this article I’ll do an example implementation using Asterisk.

European legislation will force usage of encrypted VoIP

Last year Sweden effectuated a law giving the Powers That Be the right to listen in on all Internet traffic passing the border of the country. Sweden was just the first country to put such legislation into play. When I was visiting the CeBIT fair in Hannover earlier this year, I learned the Germany also are putting such legislation in place and that other EU countries will follow suit.

The really grave issue here is that the Powers That Be can monitor and intercept such traffic without needing a court order. Yes – you read this correctly. It is no joke.

So what does this have to do with your legal VoIP traffic?

The huge problem with this scenario is that you will have low-level clerks listen in on your business conversation. In theory, the VoIP packets passing through the wire will never get into the hands of a 3rd party modulo the person monitoring your conversation. In certain parts of the business world the climate is so harsh that corporate espionage is more the rule than the exception. The easiest way to get to information is to pay someone to leak that information to you. So what you really need is access to the right one of those low-level clerks and just pay enough money to get hold of your information.

Do not get me wrong – I am not saying that every people on the planet is corrupt, but it would be sticking your head in the sand if you do not believe that corruption does exist. Even in, what appears to be, more open European countries corruption exist. It would thus be very strange if a low paid clerk would not give away information to the wrong people.

Also, if a clerk is approached by a company from their own country and is asked to “help out with the foreign competitors” – this may be deemed morally acceptable. After all – who does not want to help their own kind. In fact, this is really nothing new and it is not uncommon that this is even done pro bono. From time to time we read about Powers That Be handing over secret information to domestic companies regarding their foreign competitors.

Especially in a country like Germany people are not happy. People from the former East Germany still have the workings of the Stasi fresh in their mind. Most Germans seems to be very weary to issues regarding monitoring and signal interception.

The current legislation’s in the various countries regarding signal interception is still too new to have had any negative impact on law abiding citizens. However, it is only a matter of time before we are going to read in the press about company secrets being spilled by persons close to, or working in, the Powers That Be. When this happens the press will have a field day.

The net result is that when this happens, many more people will actively begin to seek encryption capabilities for their business communication. First out will be email. Second out will be VoIP traffic. Telephony is still a very important business tool

A very interesting observation so far is that European VoIP equipment manufacturers are putting readily available encryption schemes into their offerings – this to a bigger extent than their American counterparts. This may have to do with what the market wants. A recent BBC Digital Plantet podcast outlined the same view: It seems that in Europe we are much more concerned about privacy than elsewhere.

Currently there are a slew of providers offering encrypted telephony solution and there are even a few that do encrypted VoIP. If the offering is done right these companies will become the heroes of 2010.

After reading this article you should really ask both your equipment vendor and your service provider if they are planning to offer encrypted VoIP. My guess is that they will probably look at you with blank eyes and not understand what you are asking.