Android BYOD Security based on Trusted Network Connect » History » Version 24
Andreas Steffen, 21.04.2013 22:13
1 | 1 | Andreas Steffen | h1. Android BYOD Security based on Trusted Network Connect |
---|---|---|---|
2 | 1 | Andreas Steffen | |
3 | 16 | Andreas Steffen | An experimental "BYOD version":http://www.strongswan.org/byod/strongswan-byod-1.2.0.apk of the popular "strongSwan Android VPN Client":https://play.google.com/store/apps/details?id=org.strongswan.android allows the collection of integrity measurements on Android 4.x devices. A special Android BYOD IMC written in Java communicates via the TNC IF-M 1.0 Measurement protocol with an Operating System IMV and a Port Scanner IMV. The strongSwan Android VPN Client transports the IF-M messages (RFC 5792 PA-TNC) in IF-TNCCS 2.0 Client/Server protocol batches (RFC 5793 PB-TNC) via the IF-T for Tunneled EAP Methods 1.1 Transport protocol protected by IKEv2 EAP-TTLS. |
4 | 2 | Andreas Steffen | |
5 | 10 | Andreas Steffen | h2. VPN Client Configuration |
6 | 9 | Andreas Steffen | |
7 | 9 | Andreas Steffen | !strongswan-config_small.png!:http://www.strongswan.org/byod/strongswan-config.png |
8 | 9 | Andreas Steffen | |
9 | 18 | Andreas Steffen | The Android VPN client profile *BYOD* has the following properties: |
10 | 18 | Andreas Steffen | |
11 | 18 | Andreas Steffen | * The hostname of the VPN gateway is *byod.strongswan.org*. |
12 | 17 | Andreas Steffen | |
13 | 17 | Andreas Steffen | * The user authentication is based on *IKEv2 EAP-MD5*. |
14 | 17 | Andreas Steffen | |
15 | 17 | Andreas Steffen | * Possible user names are *john* or *jane* and the user password is *byod-test*. |
16 | 17 | Andreas Steffen | |
17 | 17 | Andreas Steffen | * The *byod.strongswan.org* server certificate is issued by the *strongSwan 2009* certification authority. |
18 | 17 | Andreas Steffen | |
19 | 17 | Andreas Steffen | Therefore the "strongSwan 2009 CA certificate":http://www.strongswan.org/byod/strongswan-cert.crt must be imported into the Android certificate trust store before the first connection can be attempted. |
20 | 2 | Andreas Steffen | |
21 | 11 | Andreas Steffen | h2. Unrestricted Access (TNC recommendation is allow) |
22 | 2 | Andreas Steffen | |
23 | 12 | Andreas Steffen | !connected_small.png!:http://www.strongswan.org/byod/screenshot-01-connected.png |
24 | 2 | Andreas Steffen | |
25 | 19 | Andreas Steffen | If the BYOD IMC (Integrity Measurement Collector) does not detect and report any security issues to the OS, Scanner and Attestation IMVs (Integrity Measurement Verifiers) via the IF-M message protocol then the TNC Server located in the combinded strongSwan PDP/PEP decides to give the VPN client full access to the corporate network. |
26 | 24 | Andreas Steffen | <pre> |
27 | 24 | Andreas Steffen | 01[TNC] received TNCCS batch (132 bytes) for Connection ID 1 |
28 | 24 | Andreas Steffen | 01[TNC] PB-TNC state transition from 'Init' to 'Server Working' |
29 | 24 | Andreas Steffen | 01[TNC] processing PB-TNC CDATA batch |
30 | 24 | Andreas Steffen | 01[TNC] processing PB-Language-Preference message (31 bytes) |
31 | 24 | Andreas Steffen | 01[TNC] processing PB-PA message (93 bytes) |
32 | 24 | Andreas Steffen | 01[TNC] setting language preference to 'en' |
33 | 24 | Andreas Steffen | 01[TNC] handling PB-PA message type 'IETF/Operating System' 0x000000/0x00000001 |
34 | 24 | Andreas Steffen | 01[IMV] IMV 1 "OS" received message for Connection ID 1 from IMC 1 |
35 | 24 | Andreas Steffen | 01[TNC] processing PA-TNC message with ID 0xec41ce1d |
36 | 24 | Andreas Steffen | 01[TNC] processing PA-TNC attribute type 'IETF/Product Information' 0x000000/0x00000002 |
37 | 24 | Andreas Steffen | 01[TNC] processing PA-TNC attribute type 'IETF/String Version' 0x000000/0x00000004 |
38 | 24 | Andreas Steffen | 01[IMV] operating system name is 'Android' from vendor Google |
39 | 24 | Andreas Steffen | 01[IMV] operating system version is '4.2.1' |
40 | 24 | Andreas Steffen | </pre> |
41 | 24 | Andreas Steffen | The BYOD IMC first reports the Android OS version via the IETF Product Information and String Version PA-TNC attributes. |
42 | 24 | Andreas Steffen | <pre> |
43 | 24 | Andreas Steffen | 01[TNC] creating PA-TNC message with ID 0xeb4b3b9d |
44 | 24 | Andreas Steffen | 01[TNC] creating PA-TNC attribute type 'IETF/Attribute Request' 0x000000/0x00000001 |
45 | 24 | Andreas Steffen | 01[TNC] creating PA-TNC attribute type 'ITA-HSR/Get Settings' 0x00902a/0x00000003 |
46 | 24 | Andreas Steffen | </pre> |
47 | 24 | Andreas Steffen | The OS IMV then requests a list of Installed Packages and some Android OS Settings via an IETF Attribute Request and an ITA-HSR Get Settings PA-TNC attribute, respectively. |
48 | 24 | Andreas Steffen | <pre> |
49 | 24 | Andreas Steffen | 05[TNC] processing PB-TNC CDATA batch |
50 | 24 | Andreas Steffen | 05[TNC] processing PB-PA message (771 bytes) |
51 | 24 | Andreas Steffen | 05[TNC] processing PB-PA message (64 bytes) |
52 | 24 | Andreas Steffen | 05[TNC] processing PB-PA message (44 bytes) |
53 | 24 | Andreas Steffen | 05[TNC] handling PB-PA message type 'IETF/Operating System' 0x000000/0x00000001 |
54 | 24 | Andreas Steffen | 05[IMV] IMV 1 "OS" received message for Connection ID 1 from IMC 1 to IMV 1 |
55 | 24 | Andreas Steffen | 05[TNC] processing PA-TNC message with ID 0x89c5af6a |
56 | 24 | Andreas Steffen | 05[TNC] processing PA-TNC attribute type 'IETF/Installed Packages' 0x000000/0x00000007 |
57 | 24 | Andreas Steffen | 05[TNC] processing PA-TNC attribute type 'ITA-HSR/Settings' 0x00902a/0x00000004 |
58 | 24 | Andreas Steffen | |
59 | 24 | Andreas Steffen | 05[IMV] processing installed 'Android' packages |
60 | 24 | Andreas Steffen | 05[IMV] package 'ch.sbb.mobile.android.b2c' (2.1.2) is ok |
61 | 24 | Andreas Steffen | 05[IMV] package 'ch.scythe.hsr' (0.8.4) not found |
62 | 24 | Andreas Steffen | 05[IMV] package 'com.amazon.kindle' (3.8.2.4) is ok |
63 | 24 | Andreas Steffen | 05[IMV] package 'com.cisco.webex.meetings' (2.5.3) not found |
64 | 24 | Andreas Steffen | 05[IMV] package 'com.endomondo.android' (8.7.0) not found |
65 | 24 | Andreas Steffen | 05[IMV] package 'com.facebook.katana' (2.3) not found |
66 | 24 | Andreas Steffen | 05[IMV] package 'com.farproc.wifi.analyzer' (3.4) not found |
67 | 24 | Andreas Steffen | 05[IMV] package 'com.linkedin.android' (2.5.7) not found |
68 | 24 | Andreas Steffen | 05[IMV] package 'com.linkomnia.ipv6detect' (1.1.0) not found |
69 | 24 | Andreas Steffen | 05[IMV] package 'com.rhmsoft.fm' (1.15.9) not found |
70 | 24 | Andreas Steffen | 05[IMV] package 'com.skype.raider' (3.2.0.6673) not found |
71 | 24 | Andreas Steffen | 05[IMV] package 'com.socialnmobile.dictapps.notepad.color.note' (3.9.17) not found |
72 | 24 | Andreas Steffen | 05[IMV] package 'com.viseca.myaccount' (1.1.0) not found |
73 | 24 | Andreas Steffen | 05[IMV] package 'com.whatsapp' (2.9.5196) not found |
74 | 24 | Andreas Steffen | 05[IMV] package 'com.xing.android' (3.8.1i) not found |
75 | 24 | Andreas Steffen | 05[IMV] package 'de.amazon.mShop.android' (2.3.0) not found |
76 | 24 | Andreas Steffen | 05[IMV] package 'jackpal.androidterm' (1.0.52) not found |
77 | 24 | Andreas Steffen | 05[IMV] package 'la.droid.qr' (5.3.2) is ok |
78 | 24 | Andreas Steffen | 05[IMV] package 'la.droid.wifi' (1.0) not found |
79 | 24 | Andreas Steffen | 05[IMV] package 'me.guillaumin.android.osmtracker' (0.6.4) not found |
80 | 24 | Andreas Steffen | 05[IMV] package 'org.connectbot' (1.7.1) not found |
81 | 24 | Andreas Steffen | 05[IMV] package 'org.strongswan.android' (1.2.0-byod) is ok |
82 | 24 | Andreas Steffen | 05[IMV] package 'tv.funtopia.weatheraustralia' (1.1R3.6) not found |
83 | 24 | Andreas Steffen | 05[IMV] processed 23 packages: 0 not updated, 0 blacklisted, 4 ok, 19 not found |
84 | 24 | Andreas Steffen | |
85 | 24 | Andreas Steffen | 05[IMV] setting 'android_id' |
86 | 24 | Andreas Steffen | 05[IMV] cf5e4cbcc6e6a2db |
87 | 24 | Andreas Steffen | 05[IMV] setting 'install_non_market_apps' |
88 | 24 | Andreas Steffen | 05[IMV] 0 |
89 | 24 | Andreas Steffen | </pre> |
90 | 24 | Andreas Steffen | The Installed Packages are compared against a reference list stored in the database. |
91 | 19 | Andreas Steffen | |
92 | 11 | Andreas Steffen | h2. Restricted Access (TNC recommendation is isolate) |
93 | 2 | Andreas Steffen | |
94 | 21 | Andreas Steffen | User *John* now makes the following changes on his Android phone: |
95 | 1 | Andreas Steffen | |
96 | 23 | Andreas Steffen | !non-market-apps-setting_small.png!:http://www.strongswan.org/byod/screenshot-09-non-market-apps-setting.png !unknown-sources-warning_small.png!:http://www.strongswan.org/byod/screenshot-11-unknown-sources-warning.png !kws-webserver_small.png!:http://www.strongswan.org/byod/screenshot-10-kws-webserver.png |
97 | 20 | Andreas Steffen | |
98 | 21 | Andreas Steffen | * If the *Unknown sources* flag is activated in the *Settings/Security* configuration menu of the Android device then a user might be lured into downloading malicious Apps via manipulated links. Setting this flag therefore poses a grave security risk. |
99 | 20 | Andreas Steffen | |
100 | 21 | Andreas Steffen | * The user also decides to download and install an Android Web Server from the official Google play store. |
101 | 20 | Andreas Steffen | |
102 | 20 | Andreas Steffen | The next time *John* tries to access his home network, he is granted only restricted access and his VPN Client is directed to a remediation network. |
103 | 6 | Andreas Steffen | |
104 | 14 | Andreas Steffen | !restricted_small.png!:http://www.strongswan.org/byod/screenshot-02-restricted.png !restricted-remediation_small.png!:http://www.strongswan.org/byod/screenshot-03-restricted-remediation.png !restricted-remediation-details_small.png!:http://www.strongswan.org/byod/screenshot-04-restricted-remediation-details.png |
105 | 2 | Andreas Steffen | |
106 | 11 | Andreas Steffen | h2. Blocked Access (TNC recommendation is block) |
107 | 2 | Andreas Steffen | |
108 | 22 | Andreas Steffen | User *John* now starts the installed Android Web Server because he wants to manage his phone remotely in a much more comfortable way from his laptop computer. The Web Server is listening on TCP port 8080, potentially allowing a hacker to access the phone and take full control of it: |
109 | 22 | Andreas Steffen | |
110 | 22 | Andreas Steffen | !webserver-active_small.png!:http://www.strongswan.org/byod/screenshot-08-webserver-active.png |
111 | 22 | Andreas Steffen | |
112 | 22 | Andreas Steffen | Since this poses a severe security breach, user *John* is blocked from accessing the network and the VPN connection setup fails. |
113 | 4 | Andreas Steffen | |
114 | 15 | Andreas Steffen | !failed_small.png!:http://www.strongswan.org/byod/screenshot-05-failure.png !failed-remediation_small.png!:http://www.strongswan.org/byod/screenshot-06-failure-remediation.png !failed-remediation-details_small.png!:http://www.strongswan.org/byod/screenshot-07-failure-remediation-details.png |