Home | History | Annotate | Download | only in security
      1 <html devsite>
      2   <head>
      3     <title>Security</title>
      4     <meta name="project_path" value="/_project.yaml" />
      5     <meta name="book_path" value="/_book.yaml" />
      6   </head>
      7   <body>
      8   <!--
      9       Copyright 2017 The Android Open Source Project
     10 
     11       Licensed under the Apache License, Version 2.0 (the "License");
     12       you may not use this file except in compliance with the License.
     13       You may obtain a copy of the License at
     14 
     15           http://www.apache.org/licenses/LICENSE-2.0
     16 
     17       Unless required by applicable law or agreed to in writing, software
     18       distributed under the License is distributed on an "AS IS" BASIS,
     19       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     20       See the License for the specific language governing permissions and
     21       limitations under the License.
     22   -->
     23 
     24 
     25 
     26 <p>
     27 Android incorporates industry-leading security features and works with
     28 developers and device implementers to keep the Android platform and ecosystem
     29 safe. A robust security model is essential to enable a vigorous ecosystem of
     30 applications and devices built on and around the Android platform and supported
     31 by cloud services. As a result, through its entire development lifecycle,
     32 Android has been subject to a rigorous security program.
     33 </p>
     34 <p>
     35 <strong>Android is designed to be open</strong>. Android applications use
     36 advanced hardware and software, as well as local and served data, exposed
     37 through the platform to bring innovation and value to consumers. To realize that
     38 value, the platform offers an application environment that protects the
     39 confidentiality, integrity, and availability of users, data, applications, the
     40 device, and the network.
     41 </p>
     42 <p>
     43 Securing an open platform requires a strong security architecture and rigorous
     44 security programs. Android was designed with multi-layered security that is
     45 flexible enough to support an open platform while still protecting all users of
     46 the platform. For information about reporting security issues and the update
     47 process, see <a href="/security/overview/updates-resources.html">Security
     48 Updates and Resources</a>.
     49 </p>
     50 <p>
     51 <strong>Android is designed for developers</strong>. Security controls were
     52 designed to reduce the burden on developers. Security-savvy developers can
     53 easily work with and rely on flexible security controls. Developers less
     54 familiar with security will be protected by safe defaults.
     55 </p>
     56 <p>
     57 In addition to providing a stable platform to build upon, Android gives
     58 additional support to developers in a number of ways. The Android security team
     59 looks for potential vulnerabilities in apps and suggests ways to fix those
     60 issues. For devices with Google Play, Play Services delivers security updates
     61 for critical software libraries, such as OpenSSL, which is used to secure
     62 application communications. Android security released a tool for testing SSL
     63 (<a href="https://github.com/google/nogotofail">nogotofail</a>) that helps
     64 developers find potential security issues on whichever platform they are
     65 developing.
     66 </p>
     67 <p>
     68 More information for Android app developers can be found on
     69 <a href="https://developer.android.com/training/best-security.html">developer.android.com</a>.
     70 </p>
     71 <p>
     72 <strong>Android is designed for users</strong>. Users are provided visibility
     73 into permissions requested by each application and control over those
     74 permissions. This design includes the expectation that attackers would attempt
     75 to perform common attacks, such as social engineering attacks to convince device
     76 users to install malware, and attacks on third-party applications on Android.
     77 Android was designed to both reduce the probability of these attacks and greatly
     78 limit the impact of the attack in the event it was successful. Android security
     79 continues to progress once the device is in the user's hands: Android works with
     80 <a href="/security/overview/acknowledgements.html">partners and the
     81 public</a> to provide patches for any Android device that is continuing to
     82 receive security updates.
     83 </p>
     84 <p>
     85 More information for end users can be found in the <a
     86 href="https://support.google.com/nexus/answer/6172890">Nexus help center</a>,
     87 <a href="https://support.google.com/pixelphone/answer/6172890">Pixel help center</a>,
     88 or your device manufacturers help center.
     89 </p>
     90 <p>
     91 This documentation outlines the goals of the Android security program, describes
     92 the fundamentals of the Android security architecture, and answers the most
     93 pertinent questions for system architects and security analysts. It focuses on
     94 the security features of Android's core platform and does not discuss security
     95 issues that are unique to specific applications, such as those related to the
     96 browser or SMS application.
     97 </p>
     98 
     99 <h2 id="background">Background</h2>
    100 <p>
    101 Android provides an open source platform and application environment for mobile
    102 devices.
    103 </p>
    104 <p>
    105 The sections and pages below describe the security features of the Android
    106 platform. <em>Figure 1</em> summarizes the security components and
    107 considerations of the various levels of the Android software stack. Each
    108 component assumes that the components below are properly secured. With the
    109 exception of a small amount of Android OS code running as root, all code above
    110 the Linux Kernel is restricted by the Application Sandbox.
    111 </p>
    112 
    113 <p><img alt="Figure 1: Android software stack" src="images/android_software_stack.png" /></p>
    114 <p  class="img-caption">
    115 <strong>Figure 1</strong>. Android software stack.
    116 </p>
    117 <p>
    118 The main Android platform building blocks are:
    119 </p>
    120 <ul>
    121   <li><strong>Device hardware</strong>: Android runs on a wide range of hardware
    122   configurations including smart phones, tablets, watches, automobiles, smart TVs,
    123   OTT gaming boxes, and set-top-boxes. Android is processor-agnostic, but it does
    124   take advantage of some hardware-specific security capabilities such as ARM
    125   eXecute-Never.</li>
    126   <li><strong>Android operating system</strong>: The core operating system is
    127   built on top of the Linux kernel. All device resources, like camera functions,
    128   GPS data, Bluetooth functions, telephony functions, network connections, etc.
    129   are accessed through the operating system.</li>
    130   <li><strong>Android Application Runtime</strong>: Android applications are most
    131   often written in the Java programming language and run in the Android runtime
    132   (ART). However, many applications, including core Android services and
    133   applications, are native applications or include native libraries. Both ART and
    134   native applications run within the same security environment, contained within
    135   the Application Sandbox. Applications get a dedicated part of the filesystem in
    136   which they can write private data, including databases and raw files.</li>
    137 </ul>
    138 <p>
    139 Android applications extend the core Android operating system. There are two
    140 primary sources for applications:
    141 </p>
    142 <ul>
    143   <li><strong>Pre-installed applications</strong>: Android includes a set of
    144   pre-installed applications including phone, email, calendar, web browser, and
    145   contacts. These function both as user applications and to provide key device
    146   capabilities that can be accessed by other applications. Pre-installed
    147   applications may be part of the open source Android platform, or they may be
    148   developed by a device manufacturer for a specific device.</li>
    149   <li><strong>User-installed applications</strong>: Android provides an open
    150   development environment that supports any third-party application. Google Play
    151   offers users hundreds of thousands of applications.</li>
    152 </ul>
    153 
    154 <h2 id="google-security-services">Google security services</h2>
    155 <p>
    156 Google provides a set of cloud-based services that are available to compatible
    157 Android devices with <a href="https://www.android.com/gms/">Google Mobile
    158 Services</a>. While these services are not part of the Android Open Source
    159 Project, they are included on many Android devices. For more information on
    160 some of these services, see Android Securitys
    161 <a href="/security/reports/Google_Android_Security_2015_Report_Final.pdf">2015
    162 Year in Review</a>.
    163 </p>
    164 <p>
    165 The primary Google security services are:
    166 </p>
    167 <ul>
    168   <li><strong>Google Play</strong>: Google Play is a collection of services that
    169   allow users to discover, install, and purchase applications from their Android
    170   device or the web. Google Play makes it easy for developers to reach Android
    171   users and potential customers. Google Play also provides community review,
    172   application
    173   <a href="https://developer.android.com/guide/publishing/licensing.html">license
    174   verification</a>, application security scanning, and other security services.</li>
    175   <li><strong>Android updates</strong>: The Android update service delivers new
    176   capabilities and security updates to selected Android devices, including updates
    177   through the web or over the air (OTA).</li>
    178   <li><strong>Application services</strong>: Frameworks that allow Android
    179   applications to use cloud capabilities such as (<a
    180   href="https://developer.android.com/guide/topics/data/backup.html">backing
    181   up</a>) application data and settings and cloud-to-device messaging
    182   (<a href="https://developers.google.com/cloud-messaging/">C2DM</a>) for push
    183   messaging.</li>
    184   <li><strong>Verify Apps</strong>: Warn or automatically block the installation
    185   of harmful applications, and continually scan applications on the device,
    186   warning about or removing
    187   <a href="https://support.google.com/accounts/answer/2812853">harmful apps</a>.
    188   </li>
    189   <li><strong>SafetyNet</strong>: A privacy preserving intrusion detection system
    190   to assist Google tracking and mitigating known security threats in addition to
    191   identifying new security threats.</li>
    192   <li><strong>SafetyNet Attestation</strong>: Third-party API to determine
    193   whether the device is CTS compatible. <a
    194   href="http://developer.android.com/training/safetynet/index.html">Attestation</a>
    195   can also assist identify the Android app communicating with the app server.</li>
    196   <li><strong>Android Device Manager</strong>: A
    197   <a href="https://www.google.com/android/devicemanager">web app</a> and
    198   <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.adm">Android
    199   app</a> to locate lost or stolen device.</li>
    200 </ul>
    201 
    202 <h2 id="security-program-overview">Security program overview</h2>
    203 <p>
    204 The key components of the Android Security Program include:
    205 </p>
    206 <ul>
    207   <li><strong>Design review</strong>: The Android security process begins early in
    208   the development lifecycle with the creation of a rich and configurable security
    209   model and design. Each major feature of the platform is reviewed by engineering
    210   and security resources, with appropriate security controls integrated into the
    211   architecture of the system.</li>
    212   <li><strong>Penetration testing and code review</strong>: During the development
    213   of the platform, Android-created and open source components are subject to
    214   vigorous security reviews. These reviews are performed by the Android Security
    215   Team, Googles Information Security Engineering team, and independent security
    216   consultants. The goal of these reviews is to identify weaknesses and possible
    217   vulnerabilities well before major releases, and to simulate the types of
    218   analysis that will be performed by external security experts upon release.</li>
    219   <li><strong>Open source and community review</strong>: The Android Open Source
    220   Project enables broad security review by any interested party. Android also uses
    221   open source technologies that have undergone significant external security
    222   review, such as the Linux kernel. Google Play provides a forum for users and
    223   companies to provide information about specific applications directly to users.</li>
    224   <li><strong>Incident Response</strong>: Even with all of these precautions,
    225   security issues may occur after shipping, which is why the Android project has
    226   created a comprehensive security response process. Full-time Android security
    227   team members monitor Android-specific and the general security community for
    228   discussion of potential vulnerabilities and review
    229   <a href="/security/overview/updates-resources.html#android_security_bug_lifecycle">security
    230   bugs</a> filed on the Android bug database. Upon the discovery of legitimate
    231   issues, the Android team has a response process that enables the rapid
    232   mitigation of vulnerabilities to ensure that potential risk to all Android users
    233   is minimized. These cloud-supported responses can include updating the Android
    234   platform (over-the-air updates), removing applications from Google Play, and
    235   removing applications from devices in the field.</li>
    236   <li><strong>Monthly security updates</strong>: The Android security team
    237   provides <a href="/security/bulletin/index.html">monthly
    238   updates</a> to Google Nexus devices and all of our device manufacturing
    239   partners.</li>
    240 </ul>
    241 
    242 <h2 id="platform-security-architecture">Platform security architecture</h2>
    243 <p>
    244 Android seeks to be the most secure and usable operating system for mobile
    245 platforms by re-purposing traditional operating system security controls to:
    246 </p>
    247 <ul>
    248   <li>Protect application and user data</li>
    249   <li>Protect system resources (including the network)</li>
    250   <li>Provide application isolation from the system, other applications, and from
    251   the user</li>
    252 </ul>
    253 <p>
    254 To achieve these objectives, Android provides these key security features:
    255 </p>
    256 <ul>
    257   <li>Robust security at the OS level through the Linux kernel</li>
    258   <li>Mandatory application sandbox for all applications</li>
    259   <li>Secure interprocess communication</li>
    260   <li>Application signing</li>
    261   <li>Application-defined and user-granted permissions</li>
    262 </ul>
    263 
    264   </body>
    265 </html>
    266