Project

General

Profile

Android BYOD Security based on Trusted Network Connect » History » Version 28

Andreas Steffen, 21.04.2013 22:48

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 25 Andreas Steffen
{{>toc}}
6 25 Andreas Steffen
7 10 Andreas Steffen
h2. VPN Client Configuration
8 9 Andreas Steffen
9 9 Andreas Steffen
!strongswan-config_small.png!:http://www.strongswan.org/byod/strongswan-config.png
10 9 Andreas Steffen
11 18 Andreas Steffen
The Android VPN client profile *BYOD* has the following properties:
12 18 Andreas Steffen
13 18 Andreas Steffen
* The hostname of the VPN gateway is *byod.strongswan.org*.
14 17 Andreas Steffen
15 17 Andreas Steffen
* The user authentication is based on *IKEv2 EAP-MD5*.
16 17 Andreas Steffen
17 17 Andreas Steffen
* Possible user names are *john* or *jane* and the user password is *byod-test*.
18 17 Andreas Steffen
19 17 Andreas Steffen
* The *byod.strongswan.org* server certificate is issued by the *strongSwan 2009* certification authority.
20 17 Andreas Steffen
21 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.
22 2 Andreas Steffen
23 11 Andreas Steffen
h2. Unrestricted Access (TNC recommendation is allow)
24 2 Andreas Steffen
25 12 Andreas Steffen
!connected_small.png!:http://www.strongswan.org/byod/screenshot-01-connected.png
26 2 Andreas Steffen
27 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.
28 24 Andreas Steffen
<pre>
29 24 Andreas Steffen
01[TNC] received TNCCS batch (132 bytes) for Connection ID 1
30 24 Andreas Steffen
01[TNC] PB-TNC state transition from 'Init' to 'Server Working'
31 24 Andreas Steffen
01[TNC] processing PB-TNC CDATA batch
32 24 Andreas Steffen
01[TNC] processing PB-Language-Preference message (31 bytes)
33 24 Andreas Steffen
01[TNC] processing PB-PA message (93 bytes)
34 24 Andreas Steffen
01[TNC] setting language preference to 'en'
35 24 Andreas Steffen
01[TNC] handling PB-PA message type 'IETF/Operating System' 0x000000/0x00000001
36 24 Andreas Steffen
01[IMV] IMV 1 "OS" received message for Connection ID 1 from IMC 1
37 24 Andreas Steffen
01[TNC] processing PA-TNC message with ID 0xec41ce1d
38 24 Andreas Steffen
01[TNC] processing PA-TNC attribute type 'IETF/Product Information' 0x000000/0x00000002
39 24 Andreas Steffen
01[TNC] processing PA-TNC attribute type 'IETF/String Version' 0x000000/0x00000004
40 24 Andreas Steffen
01[IMV] operating system name is 'Android' from vendor Google
41 24 Andreas Steffen
01[IMV] operating system version is '4.2.1'
42 24 Andreas Steffen
</pre>
43 24 Andreas Steffen
The BYOD IMC first reports the Android OS version via the IETF Product Information and String Version PA-TNC attributes.
44 24 Andreas Steffen
<pre>
45 24 Andreas Steffen
01[TNC] creating PA-TNC message with ID 0xeb4b3b9d
46 24 Andreas Steffen
01[TNC] creating PA-TNC attribute type 'IETF/Attribute Request' 0x000000/0x00000001
47 24 Andreas Steffen
01[TNC] creating PA-TNC attribute type 'ITA-HSR/Get Settings' 0x00902a/0x00000003
48 24 Andreas Steffen
</pre>
49 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.
50 24 Andreas Steffen
<pre>
51 24 Andreas Steffen
05[TNC] processing PB-TNC CDATA batch
52 24 Andreas Steffen
05[TNC] processing PB-PA message (771 bytes)
53 24 Andreas Steffen
05[TNC] processing PB-PA message (64 bytes)
54 24 Andreas Steffen
05[TNC] processing PB-PA message (44 bytes)
55 24 Andreas Steffen
05[TNC] handling PB-PA message type 'IETF/Operating System' 0x000000/0x00000001
56 24 Andreas Steffen
05[IMV] IMV 1 "OS" received message for Connection ID 1 from IMC 1 to IMV 1
57 24 Andreas Steffen
05[TNC] processing PA-TNC message with ID 0x89c5af6a
58 24 Andreas Steffen
05[TNC] processing PA-TNC attribute type 'IETF/Installed Packages' 0x000000/0x00000007
59 24 Andreas Steffen
05[TNC] processing PA-TNC attribute type 'ITA-HSR/Settings' 0x00902a/0x00000004
60 24 Andreas Steffen
61 24 Andreas Steffen
05[IMV] processing installed 'Android' packages
62 24 Andreas Steffen
05[IMV] package 'ch.sbb.mobile.android.b2c' (2.1.2) is ok
63 24 Andreas Steffen
05[IMV] package 'ch.scythe.hsr' (0.8.4) not found
64 24 Andreas Steffen
05[IMV] package 'com.amazon.kindle' (3.8.2.4) is ok
65 24 Andreas Steffen
05[IMV] package 'com.cisco.webex.meetings' (2.5.3) not found
66 24 Andreas Steffen
05[IMV] package 'com.endomondo.android' (8.7.0) not found
67 24 Andreas Steffen
05[IMV] package 'com.facebook.katana' (2.3) not found
68 24 Andreas Steffen
05[IMV] package 'com.farproc.wifi.analyzer' (3.4) not found
69 24 Andreas Steffen
05[IMV] package 'com.linkedin.android' (2.5.7) not found
70 24 Andreas Steffen
05[IMV] package 'com.linkomnia.ipv6detect' (1.1.0) not found
71 24 Andreas Steffen
05[IMV] package 'com.rhmsoft.fm' (1.15.9) not found
72 24 Andreas Steffen
05[IMV] package 'com.skype.raider' (3.2.0.6673) not found
73 24 Andreas Steffen
05[IMV] package 'com.socialnmobile.dictapps.notepad.color.note' (3.9.17) not found
74 24 Andreas Steffen
05[IMV] package 'com.viseca.myaccount' (1.1.0) not found
75 24 Andreas Steffen
05[IMV] package 'com.whatsapp' (2.9.5196) not found
76 24 Andreas Steffen
05[IMV] package 'com.xing.android' (3.8.1i) not found
77 24 Andreas Steffen
05[IMV] package 'de.amazon.mShop.android' (2.3.0) not found
78 24 Andreas Steffen
05[IMV] package 'jackpal.androidterm' (1.0.52) not found
79 24 Andreas Steffen
05[IMV] package 'la.droid.qr' (5.3.2) is ok
80 24 Andreas Steffen
05[IMV] package 'la.droid.wifi' (1.0) not found
81 24 Andreas Steffen
05[IMV] package 'me.guillaumin.android.osmtracker' (0.6.4) not found
82 24 Andreas Steffen
05[IMV] package 'org.connectbot' (1.7.1) not found
83 24 Andreas Steffen
05[IMV] package 'org.strongswan.android' (1.2.0-byod) is ok
84 24 Andreas Steffen
05[IMV] package 'tv.funtopia.weatheraustralia' (1.1R3.6) not found
85 24 Andreas Steffen
05[IMV] processed 23 packages: 0 not updated, 0 blacklisted, 4 ok, 19 not found
86 24 Andreas Steffen
87 24 Andreas Steffen
05[IMV] setting 'android_id'
88 24 Andreas Steffen
05[IMV]   cf5e4cbcc6e6a2db
89 24 Andreas Steffen
05[IMV] setting 'install_non_market_apps'
90 24 Andreas Steffen
05[IMV]   0
91 24 Andreas Steffen
</pre>
92 24 Andreas Steffen
The Installed Packages are compared against a reference list stored in the database.
93 19 Andreas Steffen
94 11 Andreas Steffen
h2. Restricted Access (TNC recommendation is isolate)
95 2 Andreas Steffen
96 21 Andreas Steffen
User *John* now makes the following changes on his Android phone:
97 1 Andreas Steffen
98 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
99 20 Andreas Steffen
100 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.
101 20 Andreas Steffen
102 21 Andreas Steffen
* The user also decides to download and install an Android Web Server from the official Google play store.
103 20 Andreas Steffen
104 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.
105 6 Andreas Steffen
106 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
107 26 Andreas Steffen
<pre>
108 26 Andreas Steffen
16[IMV] processing installed 'Android' packages
109 26 Andreas Steffen
16[IMV] package 'ch.sbb.mobile.android.b2c' (2.1.2) is ok
110 26 Andreas Steffen
...
111 26 Andreas Steffen
16[IMV] package 'org.xeustechnologies.android.kws' (1.7) is blacklisted
112 26 Andreas Steffen
16[IMV] processed 24 packages: 0 not updated, 1 blacklisted, 4 ok, 19 not found
113 2 Andreas Steffen
114 26 Andreas Steffen
16[IMV] setting 'android_id'
115 26 Andreas Steffen
16[IMV]   cf5e4cbcc6e6a2db
116 26 Andreas Steffen
16[IMV] setting 'install_non_market_apps'
117 26 Andreas Steffen
16[IMV]   1
118 26 Andreas Steffen
</pre>
119 26 Andreas Steffen
A blacklisted package is detected and Unknown Sources are enabled in the Android Security Settings
120 26 Andreas Steffen
<pre>
121 26 Andreas Steffen
16[TNC] creating PA-TNC message with ID 0xcf753973
122 26 Andreas Steffen
16[TNC] creating PA-TNC attribute type 'IETF/Assessment Result' 0x000000/0x00000009
123 26 Andreas Steffen
16[TNC] creating PA-TNC attribute type 'IETF/Remediation Instructions' 0x000000/0x0000000a
124 26 Andreas Steffen
16[TNC] creating PA-TNC attribute type 'IETF/Remediation Instructions' 0x000000/0x0000000a
125 26 Andreas Steffen
16[TNC] creating PB-PA message type 'IETF/Operating System' 0x000000/0x00000001
126 26 Andreas Steffen
16[TNC] IMV 1 is setting reason string to 'Vulnerable or blacklisted software packages were found
127 26 Andreas Steffen
16[TNC]                                    Improper OS settings were detected'
128 26 Andreas Steffen
16[TNC] IMV 1 is setting reason language to 'en'
129 26 Andreas Steffen
16[TNC] IMV 1 provides recommendation 'isolate' and evaluation 'non-compliant minor'
130 26 Andreas Steffen
</pre>
131 26 Andreas Steffen
This causes an IETF Assessment Result and two IETF Remediation Instructions PA-TNC attributes to be sent to the BYOD IMC and a PB-TNC Reason String to the TNC Client.
132 27 Andreas Steffen
133 11 Andreas Steffen
h2. Blocked Access (TNC recommendation is block)
134 2 Andreas Steffen
135 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:
136 22 Andreas Steffen
137 22 Andreas Steffen
!webserver-active_small.png!:http://www.strongswan.org/byod/screenshot-08-webserver-active.png
138 22 Andreas Steffen
139 22 Andreas Steffen
Since this poses a severe security breach, user *John* is blocked from accessing the network and the VPN connection setup fails.
140 4 Andreas Steffen
141 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
142 28 Andreas Steffen
<pre>
143 28 Andreas Steffen
01[TNC] handling PB-PA message type 'IETF/VPN' 0x000000/0x00000007
144 28 Andreas Steffen
01[IMV] IMV 2 "Scanner" received message for Connection ID 3 from IMC 1 to IMV 2
145 28 Andreas Steffen
01[TNC] processing PA-TNC message with ID 0xe1422d55
146 28 Andreas Steffen
01[TNC] processing PA-TNC attribute type 'IETF/Port Filter' 0x000000/0x00000006
147 28 Andreas Steffen
01[IMV] tcp port  8080 open: fatal
148 28 Andreas Steffen
</pre>
149 28 Andreas Steffen
The Scanner IMV detects that TCP port 8080 is open.
150 28 Andreas Steffen
<pre>
151 28 Andreas Steffen
01[TNC] creating PA-TNC message with ID 0x3411eaf5
152 28 Andreas Steffen
01[TNC] creating PA-TNC attribute type 'IETF/Assessment Result' 0x000000/0x00000009
153 28 Andreas Steffen
01[TNC] creating PA-TNC attribute type 'IETF/Remediation Instructions' 0x000000/0x0000000a
154 28 Andreas Steffen
01[TNC] creating PA-TNC attribute type 'IETF/Remediation Instructions' 0x000000/0x0000000a
155 28 Andreas Steffen
01[TNC] creating PB-PA message type 'IETF/VPN' 0x000000/0x00000007
156 28 Andreas Steffen
01[TNC] IMV 2 is setting reason string to 'Open server ports were detected'
157 28 Andreas Steffen
01[TNC] IMV 2 is setting reason language to 'en'
158 28 Andreas Steffen
01[TNC] IMV 2 provides recommendation 'no access' and evaluation 'non-compliant major'
159 28 Andreas Steffen
01[TNC] PB-TNC state transition from 'Server Working' to 'Decided'
160 28 Andreas Steffen
01[TNC] creating PB-TNC RESULT batch
161 28 Andreas Steffen
01[TNC] adding PB-PA message
162 28 Andreas Steffen
01[TNC] adding PB-PA message
163 28 Andreas Steffen
01[TNC] adding PB-PA message
164 28 Andreas Steffen
01[TNC] adding PB-Assessment-Result message
165 28 Andreas Steffen
01[TNC] adding PB-Access-Recommendation message
166 28 Andreas Steffen
01[TNC] adding PB-Reason-String message
167 28 Andreas Steffen
01[TNC] adding PB-Reason-String message
168 28 Andreas Steffen
01[TNC] sending PB-TNC RESULT batch (1469 bytes) for Connection ID 3
169 28 Andreas Steffen
</pre>