Securing work contacts while keeping caller ID 02: Android

I had a week of customer meetings, each (literally!) asking the same question: “How can I prevent WhatsApp from grabbing the corporate contacts on my device?”

In this series of posts we will explore the options of deploying corporate email/contacts/calendars with the goal of maximal work/personal contact separation, while trying to minimally impair the user experience (such as the Caller ID).

Table of contents:

(more…)

Advertisements

Securing work contacts while keeping caller ID 01: Android vs iOS

I had a week of customer meetings, each (literally!) asking the same question: “How can I prevent WhatsApp from grabbing the corporate contacts on my device?” This happens more often than you think – the infamous GetContact collected over 3.5B contacts in just a few months, all of which were officially available for sale! With GDRP in effect, how much could this cost?

Of course, both iOS and Android offer means to securely lock down enterprise data on BYOD devices. But this comes at a price of usability, the most cited problem being the caller it. We know that in the modern day an unhappy and discomforted user is essentially a backdoor waiting to happen. How can we keep this balance between security and productivity?

In this series of posts we will explore the options of deploying corporate email/contacts/calendars with the goal of maximal work/personal contact separation, while trying to minimally impair the user experience (such as the Caller ID).

We will explore several approaches, their limitations and shortcomings for iOS and Android. This post lays the foundations and provides a TL:DR style summary/comparison of my current findings.

Table of contents:

(more…)

Does Android P private DNS really contribute to privacy? Or to Enterprise control?

Private DNS is a new feature in Android P, which allows you to globally override the DNS settings (received from your carrier, hotspot provider etc.). This means that the said carrier’s or provider’s DNS servers will not be able to log your browsing habits.

Read more here (Android Police).

Screenshot_20180422-175014.png
Private DNS configuration (c) Android Police

This looks like privacy, but isn’t necessarily so…

(more…)

Lockdown in Android Enterprise (Android P DP1)

I’ve previously covered the BYOD experience in Android P, now let’s delve into corporate-owned scenarios. My attempt to cover everything in a single long post had failed, so I’m splitting this into a series. Today we’re covering lockdown.

Retrospective

Early Android ideology assumed that device lockdown should be impossible. After all, here’s how ransomware works 😊 User is King and should always be able to regain control of the device. Earlier versions of Compatibility Definition Document even mandated that Home button and Factory Reset were always available to the user. The closest one could get to a locked down (kiosk/single application mode) device was to write a custom launcher that would then auto-launch or provide access to a limited set of apps. But even then user could simply pull the notification share to access quick settings, use the Recents screen to switch between tasks etc. In general, lockdown was not possible unless one used undocumented APIs and hacks or had custom OS extensions and special tools such as Zebra MX combined with Zebra Enterprise Home Screen. Needless to say, such tools were vendor (and sometimes even OS build!) specific and had their limitations.

In Android 5 Google began addressing the issue by introducing two new modes.

Screen Pinning (Android L)

Screen Pinning (also sometimes called App Pinning in documentation) is a simpler “user-facing” and user-initiated scenario. This one enables you to give your phone to someone else, locked down to a single app (browser, game etc, but not your emails or phone book).

User enables screen pinning in settings, selects an app, performs a special gesture – voila! Similarly, to end the mode user performs a gesture, and there is an optional lock screen protection. There are countless tutorials in the Internet, and here’s a simple animated GIF I had created.

ScreenPin
Screen Pinning example

 

Note, however, this is 100% user-controlled. How about Enterprise Admin?

Lock Task mode (Android L,M)

Another mode introduced in Android L was called Lock Task. This one allowed the app itself to enter a lockdown mode and control what user can or cannot do. Sounds like the right thing to do? There were, however, complications:

  • To avoid the ransomware threat, the app had to be first whitelisted by the Device Owner (i.e. your EMM agent). So the setup process was not that simple.
  • And yes, if your device was not enrolled into Device Owner (work-managed) mode (using old Device Administration API etc) – you could not use that feature.
  • The admin could not choose any app – the app had to be built with Lock Task support. Otherwise, you could not use that feature.
  • The app itself had to provide mechanism to end the Lock Task mode. If the app got frozen, you had to reboot the device.
  • Since Android L had very little in terms of UI control (Notifications, Recents, etc) the whole thing only made sense with Marshmallow or later.
LockTaskModeGoogle
From Google developer documentation

There were of course good things – you (well, the app) could quite precisely (well, in Android M+) control which UI elements to hide (well, only combined with other DPC features). Anyway, most importantly, this at least allowed the EMM vendors to finally write reliable lockdown plugins as part of their EMM suites (provided uses had work-managed devices).

Android N and O added a few bits here and there, but overall, the flexibility and ease of use were still quite far away from the aforementioned Zebra MX+EHS combination, for instance.

Until Google NAILED it in Android P!

Android P Enhancements

Android P adds a few missing pieces that finally complete the puzzle:

  • Admins can lock down any app to a device – no more the Admin depends on the Developer!
    • The app still has to be whitelisted, as a security precaution
    • Similarly, if the app is frozen or just has no “Exit” option, it can be terminated remotely (think kiosks)
  • Admins can choose which UI features to display: again, no Developer dependency and those restrictions are only for the duration on the Lock Task mode (previously they were very much global). Here are the features available:
    • LOCK_TASK_FEATURE_NONE (shortcut for “Disable everything”)
    • LOCK_TASK_FEATURE_SYSTEM_INFO
    • LOCK_TASK_FEATURE_NOTIFICATIONS
    • LOCK_TASK_FEATURE_HOME
    • LOCK_TASK_FEATURE_KEYGUARD
    • LOCK_TASK_FEATURE_OVERVIEW
    • LOCK_TASK_FEATURE_GLOBAL_ACTIONS
  • Error dialogs may be suppressed as well (think kiosks again). Those are, of course, system error messages, not what the app shows within itself.

Below are a few screenshots of Lock Task mode in Android P preview. Since there are no official EMM agents supporting P yet, I have been using the TestDPC app from the Google Android Enterprise team. Note that the Play Store version (at the time of writing this post) is still old – you’d have to download and sign the APK from GitHub instead.

LockTask general demo:

Kiosk features:

Summary:

Screen Pinning

  • User-initiated
  • Simple and easy, no app support required
  • No admin control
  • Makes little sense w/o password

Lock Task (Android P)

  • Admin/app controlled (requires EMM support, also app support pre-P)
  • Admin/App-initiated
  • Much more flexible (especially in P)
  • Makes full sense for COSU

So I think that Google did indeed NAIL it firmly and decisively!

As a bonus, lockdown solution developers can focus on providing value-add (SSO etc) vs fighting the OS, especially when combined with ephemeral user support in P!

What are your thoughts? How do you like my blurry videos?

Android Enterprise BYOD Experience in Android P [Demo]

Android P Developer Preview One has been released this week. Among many features, there are Enterprise enhancements in both UI/UX as well as under the hood.  Seems to be a good time to try some of them out!

Today we will be discussing the BYOD user experience: device enrollment, work/personal separation, compliance etc. Later, I am planning to cover the COBO/COSU (fully Work-Managed device) use case as well as some more advanced features.

Warning, many pictures!

(more…)

Sorting out Android Enterprise management terminology

Android Enterprise evolves at a rapid pace. As an inevitable result, there is a trail of confusion with terms being introduced or changing meaning often. Can you tell the difference between the following: Device Policy Controller, Device Administration API, Device Owner, Device Policy Manager, User Manager, Android Management API, Profile Owner? Let’s sort it out (in a relatively chronological manner)!

(more…)