{"id":16877,"date":"2017-05-19T09:00:54","date_gmt":"2017-05-19T13:00:54","guid":{"rendered":"https:\/\/www.kaspersky.com\/blog\/?p=16877"},"modified":"2021-03-17T09:53:03","modified_gmt":"2021-03-17T13:53:03","slug":"ss7-attack-intercepts-sms","status":"publish","type":"post","link":"https:\/\/www.kaspersky.com\/blog\/ss7-attack-intercepts-sms\/16877\/","title":{"rendered":"Why two-factor authentication is not enough"},"content":{"rendered":"<p>The usual argument \u201cdo you really need an antivirus\u201d quite often goes something like this:<\/p>\n<p>\u2014 I don\u2019t need antivirus! I have nothing to steal! Viruses? Ransomware? Go on and infect me! I\u2019ll just reinstall the operating system, and I don\u2019t have anything to lose \u2014 there is nothing valuable on my computer.<\/p>\n<p>\u2014 But you have a bank account, right? You do online shopping, don\u2019t you?<\/p>\n<p>\u2014 Bah, the bank has two-factor authentication. That will protect me. Even if hackers stole my card number, they could not withdraw my money.<\/p>\n<p>Well, turns out they can. First, <a href=\"https:\/\/www.kaspersky.com\/blog\/bank-cards-hidden-risks\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">not every online store uses 3D Secure protection<\/a>, which means that not every transaction requires a confirmation SMS message with a code. Even the CVC code (three digits on the back of the card) is no guarantee against misuse \u2014 not all transactions require one.<\/p>\n<p>Also, hackers can intercept the SMS messages banks send and use the verification codes to gain full access to an account. Recently, a substantial sum of money <a href=\"https:\/\/arstechnica.com\/security\/2017\/05\/thieves-drain-2fa-protected-bank-accounts-by-abusing-ss7-routing-protocol\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">was stolen<\/a> from unlucky consumers in Germany in exactly this manner. Let\u2019s take a closer look at how it happened.<\/p>\n<h2>SS7: A hole in the phone<\/h2>\n<p>Intercepting SMS messages is possible because of vulnerabilities in a set of telephony signaling protocols referred to by a common name \u2014 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Signalling_System_No._7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">SS7<\/a> (aka Signaling System 7, aka Common Channel Signaling System 7).<\/p>\n<p>These signaling protocols are the backbone of the contemporary telephone communication system; they are designed to transmit all of the service information within a telephone network. They were developed as far back as the 1970s and implemented for the first time in the 80s, and since then they have become a worldwide standard.<\/p>\n<p>Initially, SS7 protocols were designed for fixed phones. The idea was to physically separate voice and service signals by putting them on different channels, and it was done to harden protection against telephone intruders using <a href=\"https:\/\/en.wikipedia.org\/wiki\/Blue_box\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">special boxes<\/a> to imitate the tone signals used at the time to transfer service information within telephone networks. (Yes, the same boxes Steve Jobs and Steve Wozniak were making back in the day \u2014 but that\u2019s another story.)<\/p>\n<p>The same set of protocols was implemented later, in mobile networks. In between, developers added a range of features. Among other things, SS7 is used to transfer SMS messages.<\/p>\n<p>But information security was not a matter of concern fifty years ago \u2014 at least, not for civil technologies. Efficiency was what mattered, and that got us the efficient but insecure Signaling System 7.<\/p>\n<p>The main weak point of this system (along with many other systems designed in those times) is that it is based on trust. It was assumed that only network operators would access it, and they were generally thought to be nice guys.<\/p>\n<p>Ultimately, however, the system\u2019s security level is <a href=\"https:\/\/arstechnica.com\/security\/2016\/04\/how-hackers-eavesdropped-on-a-us-congressman-using-only-his-phone-number\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">defined by the <i>least<\/i> protected member<\/a>. If any of its operators is hacked, then the whole system is compromised. The same is true if any network administrator working for any of those operators decides to exceed authority and to use SS7 for their own purposes.<\/p>\n<p>SS7 access can allow someone to wiretap conversations, determine the location of the user, and intercept SMS messages, so it\u2019s no surprise that both secret services of various countries and criminals are active users of unauthorized SS7 access.<\/p>\n<h3>How the attack actually happened<\/h3>\n<p>In the case of the recent attack in Germany, it went like this:<\/p>\n<p>1. Users\u2019 computers were infected by a banking Trojan. It\u2019s very easy to be infected by a Trojan if you do not use a security solution, and they can work without any obvious signs, so users may not notice them at all.<\/p>\n<p>Using the Trojan, hackers stole bank logins and passwords. (Of course, stealing those credentials is not enough in most cases \u2014 the confirmation code from the bank sent by SMS is also required.)<\/p>\n<p>2. Apparently, the same Trojan was used to steal the users\u2019 phone numbers. This data is usually requested when people make purchases online, and it\u2019s not hard to steal. So, the crooks had both the credentials to access the users\u2019 bank accounts and their mobile phone numbers.<\/p>\n<p>3. The criminals used the stolen bank logins to initiate the money transfer to their own bank account. After that, having access to SS7 on behalf of some foreign carrier, they forwarded SMS messages sent to those phone numbers to their own phone and received the confirmation codes they needed to complete the logins and transfer money. The bank didn\u2019t have a reason even to suspect possible abuse.<\/p>\n<p>The German carrier whose subscribers were harmed by this case has confirmed the attack. The foreign carrier whose SS7 network access was used for the attack was blocked, and affected persons were notified. We do not know if they managed to get the money back.<\/p>\n<h3>Don\u2019t you still need an antivirus?<\/h3>\n<p>Two-factor authentication is usually considered solid security \u2014 if no one but you has access to your mobile phone, then who else could read a message on it? Well, anyone who has access to the SS7 system and who is interested in using your SMS messages to get to your money.<\/p>\n<p>What can you do to build proper two-factor authentication and protect against attacks similar to the one described in this post? Here are two tips.<\/p>\n<ul>\n<li>SMS is not the only solution for two-factor authentication. See if your bank supports other, more secure variants such as the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Google_Authenticator\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google Authenticator app<\/a> and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Universal_2nd_Factor\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">cryptographic USB keys<\/a>.<\/li>\n<\/ul>\n<input type=\"hidden\" class=\"category_for_banner\" value=\"kis-trial-banking\">\n<ul>\n<li>Use a good <a href=\"https:\/\/www.kaspersky.com\/internet-security?icid=gl_kdailyplacehold_acq_ona_smm__onl_b2c_kasperskydaily_wpplaceholder____kismd___\" target=\"_blank\" rel=\"noopener nofollow\">security solution<\/a> on every device. Unfortunately, banks may not use alternative kinds of two-factor authentication; some send confirmation only by SMS, and then your only hope is a strong security solution. In the case of the attack described in this post, a proper antivirus would not have allowed the banking Trojan to infect the computer in the first place, so the bank login would not have been stolen. At that point, access to your SMS would be beside the point.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>How messages with confirmation codes from banks are intercepted and what can you do to protect yourself.<\/p>\n","protected":false},"author":675,"featured_media":16878,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[1218,734,584,97,46,1327],"class_list":{"0":"post-16877","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-news","8":"tag-2fa","9":"tag-banking-trojans","10":"tag-mobile","11":"tag-security-2","12":"tag-sms","13":"tag-ss7"},"hreflang":[{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/ss7-attack-intercepts-sms\/16877\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/ss7-attack-intercepts-sms\/10537\/"},{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/ss7-attack-intercepts-sms\/10482\/"},{"hreflang":"es","url":"https:\/\/www.kaspersky.es\/blog\/ss7-attack-intercepts-sms\/12962\/"},{"hreflang":"it","url":"https:\/\/www.kaspersky.it\/blog\/ss7-attack-intercepts-sms\/13093\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/ss7-attack-intercepts-sms\/17673\/"},{"hreflang":"fr","url":"https:\/\/www.kaspersky.fr\/blog\/ss7-attack-intercepts-sms\/8805\/"},{"hreflang":"pl","url":"https:\/\/plblog.kaspersky.com\/ss7-attack-intercepts-sms\/6765\/"},{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/ss7-attack-intercepts-sms\/13148\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/ss7-attack-intercepts-sms\/16877\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/ss7-attack-intercepts-sms\/16877\/"}],"acf":[],"banners":"","maintag":{"url":"https:\/\/www.kaspersky.com\/blog\/tag\/banking-trojans\/","name":"banking trojans"},"_links":{"self":[{"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/16877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/users\/675"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/comments?post=16877"}],"version-history":[{"count":7,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/16877\/revisions"}],"predecessor-version":[{"id":39048,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/16877\/revisions\/39048"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/media\/16878"}],"wp:attachment":[{"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/media?parent=16877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/categories?post=16877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/tags?post=16877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}