Developing Mobile Device Management for 15 million devices (case study) Rim KHAZHIN



Similar documents
Security Guide. BlackBerry Enterprise Service 12. for ios, Android, and Windows Phone. Version 12.0

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

BlackBerry Enterprise Service 10. Universal Device Service Version: Administration Guide

Configuration Guide. BlackBerry Enterprise Service 12. Version 12.0

MDM User Guide June 2012

Mobile Device Management Version 8. Last updated:

Sophos Mobile Control Administrator guide. Product version: 3

Kaspersky Lab Mobile Device Management Deployment Guide

Configuration Guide BES12. Version 12.1

Administering Jive Mobile Apps

Configuration Guide BES12. Version 12.2

Super Manager User Manual. English v /06/15 Copyright by GPC

USER TRAINING. Enterprise Mobility Solutions October 23, 2013

Group Management Server User Guide

Copyright 2013, 3CX Ltd.

Sophos Mobile Control Startup guide. Product version: 3

AVG Business SSO Partner Getting Started Guide

Product Manual. MDM On Premise Installation Version 8.1. Last Updated: 06/07/15

SYNCSHIELD FEATURES. Preset a certain task to be executed. specific time.

Mobile Device Management Solution Hexnode MDM

Kaseya 2. User Guide. Version 1.0

Back, start, and search key Lock the keys and screen Unlock the keys and screen Set the keys and screen to lock automatically...

Configuration Guide BES12. Version 12.3

Sophos Mobile Control Startup guide. Product version: 3.5

Sophos Mobile Control Administrator guide. Product version: 3.6

UP L18 Enhanced MDM and Updated Protection Hands-On Lab

1. What are the System Requirements for using the MaaS360 for Exchange ActiveSync solution?

Sophos Mobile Control Technical Guide. Product version: 3

Administration Guide. BlackBerry Enterprise Service 12. Version 12.0

Auditing the Security and Management of Smart Devices. ISACA Dallas Meeting February 13, 2014

LDAP User Guide PowerSchool Premier 5.1 Student Information System

Sophos Mobile Control Installation guide. Product version: 3.5

Sophos Mobile Control SaaS startup guide. Product version: 6

Feature Matrix MOZO CLOUDBASED MOBILE DEVICE MANAGEMENT

Architecture and Data Flow Overview. BlackBerry Enterprise Service Version: Quick Reference

Introduction to Mobile Access Gateway Installation

Junos Pulse for Google Android

Creating an Apple APNS Certificate

Copyright 2013, 3CX Ltd.

Sophos Mobile Control Technical guide

Generating an Apple Push Notification Service Certificate for use with GO!Enterprise MDM. This guide provides information on...

AirWatch for Android Devices

GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android

Symantec Mobile Management 7.2 SP3 MR1 Release Notes

Kaspersky Security 10 for Mobile Implementation Guide

UNI - WINDOWS. How to... Access your University on your Windows Computer. Introduction. Step 1/1 - Setting Up Your Windows Computer

Mobile Iron User Guide

GROUPTALK FOR ANDROID VERSION for Android

How to configure Mac OS X Server

Advanced Configuration Steps

Mobile Device Management Version 8. Last updated:

Building a BYOD Program Using the Casper Suite. Technical Paper Casper Suite v9.4 or Later 17 September 2014

Preparing for GO!Enterprise MDM On-Demand Service

Xperia TM. Read about how Xperia TM devices can be administered in a corporate IT environment

A Guide to New Features in Propalms OneGate 4.0

APPENDIX B1 - FUNCTIONALITY AND INTEGRATION REQUIREMENTS RESPONSE FORM FOR A COUNTY HOSTED SOLUTION

RDM+ Desktop for Windows Getting Started Guide

Zipit Chat. Functional Specification / User Manual

Bell Mobile Device Management (MDM)

Deploying iphone and ipad Mobile Device Management

Kaspersky Security for Mobile Administrator's Guide

DETERMINATION OF THE PERFORMANCE

Generating an Apple Push Notification Service Certificate for use with GO!Enterprise MDM. This guide provides information on...

Certificate technology on Pulse Secure Access

IceBreak FileShare. Quick Guide. File sharing with workflow management

Sophos Mobile Control Technical Guide. Product version: 3.5

Cloud Services MDM. ios User Guide

QMX ios MDM Pre-Requisites and Installation Guide

Certificate technology on Junos Pulse Secure Access

Sophos Mobile Control Installation guide. Product version: 3

Cloud Services MDM. Control Panel Provisioning Guide


SysAid MDM User Guide for ios

Mobile Device Management and Security Glossary

Sophos Mobile Control Installation guide


Novell Filr. Mobile Client

BlackBerry Enterprise Service 10. Version: Configuration Guide

Media Server Installation & Administration Guide

GCM for Android Setup Guide

Matrix Technical Support Mailer - 72 Procedure for Image Upload through Server in SATATYA DVR,NVR & HVR

AppPulse Mobile. Whitepaper: Overhead, Privacy, and Security. March 2016

Good for Enterprise Good Dynamics

Sophos Mobile Control Installation guide. Product version: 3.6

Frequently Asked Questions: Cisco Jabber 9.x for Android

Qsync Install Qsync utility Login the NAS The address is :8080 bfsteelinc.info:8080

PD590-KT. Guide Android 4.4.2

Integrating Cisco ISE with GO!Enterprise MDM Quick Start

1. Introduction Activation of Mobile Device Management How Endpoint Protector MDM Works... 5

Telstra Mobile Device Management (T MDM) Getting Started Guide

GRAVITYZONE HERE. Deployment Guide VLE Environment

Quadro Configuration Console User's Guide. Table of Contents. Table of Contents

GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android with TouchDown

Administrator's Guide

SuperOffice Pocket CRM

Samsung KNOX User Guide KNOX for Consumers Edition

Network Licensing. White Paper 0-15Apr014ks(WP02_Network) Network Licensing with the CRYPTO-BOX. White Paper

AirWatch for ios Devices

Transcription:

Developing Mobile Device Management for 15 million devices (case study)

whoami software architect @ btt ltd space technologies research institute Ericsson mobility world underwater photographer

why am I giving this talk? share our research describe undocumented Android share experience

plan of this talk what is MDM? managing Android: using API functions rooted with vendor support optimization

Mobile Device Management system purpose: controlling device(s) typical features: profile delivery: wifi pass, b/w list, email, vpn policy: password strength, camera disabled application control

in two words: restricts controls

Fatih project ordered by Turkish Ministry of Education 15 million devices delivered at 30k public schools free wifi Internet to all public schools running since mid 2013

about this project

Fatih project requirements deliver and manage 15 million devices control applications control hardware manage by profile, location, group

design

MDM application design MDM is an app protect MDM undetectable, unstoppable, unremovable prevent rooting detect if rooted

make app unstoppable?! device administration permission app is unstoppable! and unremovable!

device administration API password strength policy set new password lock, wipe, encrypt, disable camera

getting device administration permission bind BIND_DEVICE_ADMIN permission extend DeviceAdminReceiver listen to ACTION_DEVICE_ADMIN_ENABLED intent

security -> device administrators view device administrators remove permission

prevent removing admin permission offer carrot on a stick wifi settings email account vpn settings

if permission removed! DeviceAdminReceiver.onDisabled() disable accounts show warning notify system administrator

prevent removing admin permission use custom launcher what is launcher?

custom launcher an application device home screen lists and launches other apps keyword: lists and launches

use custom launcher to: show only allowed apps hide settings app show your own modified Settings

developing a launcher Intent filter <intent-filter> <category android:name="android.intent.category.home" /> <category android:name="android.intent.category.default" /> full-screen app <activity android:theme="@android:style/theme.wallpaper.notitlebar.fullscreen"

making launcher default click home button select your launcher tick Use by default for this action checkbox

application management list apps using PackageManager every app is not runnable getlaunchintentforpackage() launch apps

application management installing apps Intent promptinstall = new Intent(Intent.ACTION_VIEW).setDataAndType(Uri.parse("file:///RestaurantMenu.apk"), "application/vnd.android.package-archive"); deleting apps Intent intent = new Intent(Intent.ACTION_DELETE); intent.setdata(uri.parse("package:com.facebook.messenger"));

remember the carrots don t restrict too much give good carrots: wifi access. Don't give the password! corporate accounts: disable account if MDM gets removed

hard-core Android

but how do we REALLY control the device? unremovable system application undetectable core application

what is a system application? runs with system UID USER PID PPID VSIZE RSS NAME root 1 0 888 740 /init root 2 0 0 0 kthreadd root 157 1 883620 45152 zygote keystore 163 1 4712 1048 /system/bin/keystore radio 871 157 920240 31748 com.android.phone bluetooth 886 157 896776 21828 com.mediatek.bluetooth system 901 157 903968 29880 com.btt.mdm u0_a8 923 157 954192 33456 com.android.launcher3 u0_a2 974 157 905620 25408 com.android.contacts

developing a system application <manifest xmlns:android="http://schemas.android.com/apk/res/android" coreapp="true" package="com.btt.mdm" android:shareduserid="android.uid.system"> core application use system privileges

permissions <permission android:protectionlevel=["normal" "dangerous" "signature" "signatureorsystem"] /> "signatureorsystem" A permission that the system grants only to applications that are in the Android system image or that are signed with the same certificate as the application that declared the permission.

obtaining the permissions System permission put app to system ROM /system/app/ Signature permission: sign the app with platform key

prevent removing Device admin permission? disable settings menu compile Settings from sources mind vendor-specific features

how to control hardware? disable bluetooth use for ALL apps! disable external memory card, wifi, for ALL apps! no functions to disable camera for ALL apps!

reverse-engineer Android android source http://source.android.com/source/building.html find settings application source android-source/packages/apps/settings/ find bluetooth control functions

hardware control functions camera control SystemProperties.set(SYSTEM_PROP_DISABLE_CAMERA, value); bluetooth control BluetoothAdapter mbluetoothadapter = BluetoothAdapter.getDefaultAdapter(); mbluetoothadapter.disable();

these functions: undocumented hidden unavailable modify kernel-level params

app is compiled. now what? root the device manufacturer s support

what do we get from manufacturers? Android (Samsung, LG, General Mobile, etc) MDM API Sony Open Devices Apple MDM built-in

MDM API Hardware control Application management Install application (silent) Remove application (silent) Control submenus of Settings

procedure join Enterprise Developer Program get you app signed by vendor security check

Project Manager Java, PHP C++ $50,000 $10,000 $5,000

scaling

app requirements low battery low bandwidth low latency

how do you do this? minimal number of transactions

server side memory CPU network bandwidth example: 15 million devices sending 1KB each

how to reduce? few requests small packets Google spdy protocol faster! great for poor network!

optimize network operations handle connection exceptions random wait period use AlarmManager, set PendingIntent setinexactrepeating() limited retry count

optimize network operations check the connectivity status ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activenetwork = cm.getactivenetworkinfo(); listen to network connection changes <action android:name="android.net.conn.connectivity_change"/>

sending commands to device send push notification device connects over HTTPS verify SSL certificate

server optimization

microservices separate service for each function: send message send like upload image get messages

microservice workflow parse and validate message authenticate user no business logic

background services sending push notifications sending emails resizing images processing video

database optimization stored procedures speed security business logic

debugging (shared) production server identify single request out of millions of requests? log all requests turn on when needed for a single microservice turn off when done

testing is important! what happens if 1% of 100 customers complain? what happens if 1% of 15mln customers complain? is bug-free software possible? well-tested software is

conclusion android administration scaling optimization don't over-engineer! release the app

questions? http://google.com/+rimkhazhin