Diberdayakan oleh Blogger.
RSS
Tampilkan postingan dengan label androidn. Tampilkan semua postingan
Tampilkan postingan dengan label androidn. Tampilkan semua postingan

Keeping Android safe: Security enhancements in Nougat


Posted by Xiaowen Xin, Android Security Team



Over the course of the summer, we previewed a variety of security enhancements in
Android 7.0 Nougat: an increased focus on security with our href="http://android-developers.blogspot.com/2016/06/one-year-of-android-security-rewards.html">vulnerability
rewards program, a new href="http://android-developers.blogspot.com/2016/04/developing-for-direct-boot.html">Direct
Boot mode, re-architected mediaserver and href="http://android-developers.blogspot.com/2016/05/hardening-media-stack.html">hardened
media stack, apps that are protected from href="http://android-developers.blogspot.com/2016/04/protecting-against-unintentional.html">accidental
regressions to cleartext traffic, an update to the way Android handles href="http://android-developers.blogspot.com/2016/07/changes-to-trusted-certificate.html">trusted
certificate authorities, strict enforcement of href="http://android-developers.blogspot.com/2016/07/strictly-enforced-verified-boot-with.html">verified
boot with error correction, and href="http://android-developers.blogspot.com/2016/07/protecting-android-with-more-linux.html">updates
to the Linux kernel to reduce the attack surface and increase memory
protection. Phew!



Now that Nougat has begun to roll out, we wanted to recap these updates in a
single overview and highlight a few new improvements.


Direct Boot and encryption



In previous versions of Android, users with encrypted devices would have to
enter their PIN/pattern/password by default during the boot process to decrypt
their storage area and finish booting. With Android 7.0 Nougat, we’ve updated
the underlying encryption scheme and streamlined the boot process to speed up
rebooting your phone. Now your phone’s main features, like the phone app and
your alarm clock, are ready right away before you even type your PIN, so people
can call you and your alarm clock can wake you up. We call this feature href="http://android-developers.blogspot.com/2016/04/developing-for-direct-boot.html">Direct
Boot.



Under the hood, file-based encryption enables this improved user experience.
With this new encryption scheme, the system storage area, as well as each user
profile storage area, are all encrypted separately. Unlike with full-disk
encryption, where all data was encrypted as a single unit, per-profile-based
encryption enables the system to reboot normally into a functional state using
just device keys. Essential apps can opt-in to run in a limited state after
reboot, and when you enter your lock screen credential, these apps then get
access your user data to provide full functionality.



File-based encryption better isolates and protects individual users and profiles
on a device by encrypting data at a finer granularity. Each profile is encrypted
using a unique key that can only be unlocked by your PIN or password, so that
your data can only be decrypted by you.






Encryption support is getting stronger across the Android ecosystem as well.
Starting with Marshmallow, all capable devices were required to support
encryption. Many devices, like Nexus 5X and 6P also use unique keys that are
accessible only with trusted hardware, such as the ARM TrustZone. Now with 7.0
Nougat, all new capable Android devices must also have this kind of hardware
support for key storage and provide brute force protection while verifying your
lock screen credential before these keys can be used. This way, all of your data
can only be decrypted on that exact device and only by you.


The media stack and platform hardening



In Android Nougat, we’ve both hardened and href="http://android-developers.blogspot.com/2016/05/hardening-media-stack.html">re-architected
mediaserver, one of the main system services that processes untrusted input.
First, by incorporating integer overflow sanitization, part of Clang’s href="http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html">UndefinedBehaviorSanitizer,
we prevent an entire class of vulnerabilities, which comprise the majority of
reported libstagefright bugs. As soon as an integer overflow is detected, we
shut down the process so an attack is stopped. Second, we’ve modularized the
media stack to put different components into individual sandboxes and tightened
the privileges of each sandbox to have the minimum privileges required to
perform its job. With this containment technique, a compromise in many parts of
the stack grants the attacker access to significantly fewer permissions and
significantly reduced exposed kernel attack surface.



In addition to hardening the mediaserver, we’ve added a large list of
protections for the platform, including:


  • Verified Boot: Verified Boot is now strictly enforced to
    prevent compromised devices from booting; it supports href="http://android-developers.blogspot.com/2016/07/strictly-enforced-verified-boot-with.html">error
    correction to improve reliability against non-malicious data corruption.
  • SELinux: Updated SELinux configuration and increased
    Seccomp coverage further locks down the application sandbox and reduces attack
    surface.
  • Library load order randomization and improved ASLR:
    Increased randomness makes some code-reuse attacks less reliable.
  • href="http://android-developers.blogspot.com/2016/07/protecting-android-with-more-linux.html">Kernel
    hardening
    : Added additional memory protection for newer kernels by
    href="https://android-review.googlesource.com/#/q/status:merged+project:kernel/common+branch:android-3.18+topic:arm64-ronx">marking
    portions of kernel memory as read-only, href="https://android-review.googlesource.com/#/q/status:merged+project:kernel/common+branch:android-4.1+topic:sw_PAN">restricting
    kernel access to userspace addresses, and further reducing the existing
    attack surface.
  • href="https://developer.android.com/preview/api-overview.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog#apk_signature_v2">APK
    signature scheme v2
    : Introduced a whole-file signature scheme that
    improves href="https://source.android.com/security/apksigning/v2.html#verification">verification
    speed and strengthens integrity guarantees.

App security improvements



Android Nougat is the safest and easiest version of Android for application
developers to use.


  • Apps that want to share data with other apps now must explicitly opt-in by
    offering their files through a href="https://developer.android.com/guide/topics/providers/content-providers.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog">Content
    Provider, like href="https://developer.android.com/reference/android/support/v4/content/FileProvider.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog">FileProvider.
    The application private directory (usually /data/data/) is now set to
    Linux permission 0700 for apps targeting API Level 24+.
  • To make it easier for apps to control access to their secure network
    traffic, user-installed certificate authorities and those installed through
    Device Admin APIs are href="http://android-developers.blogspot.com/2016/07/changes-to-trusted-certificate.html">no
    longer trusted by default for apps targeting API Level 24+. Additionally,
    all new Android devices must ship with the href="https://source.android.com/security/overview/app-security.html#certificate-authorities">same
    trusted CA store.
  • With href="https://developer.android.com/preview/features/security-config.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog">Network
    Security Config, developers can more easily configure network security
    policy through a declarative configuration file. This includes blocking
    cleartext traffic, configuring the set of trusted CAs and certificates, and
    setting up a separate debug configuration.


We’ve also continued to refine app permissions and capabilities to protect you
from potentially harmful apps.


  • To improve device privacy, we have further restricted and removed access to
    persistent device identifiers such as MAC addresses.
  • User interface overlays can no longer be displayed on top of permissions
    dialogs. This “clickjacking” technique was used by some apps to attempt to gain
    permissions improperly.
  • We’ve reduced the power of device admin applications so they can no longer
    change your lockscreen if you have a lockscreen set, and device admin will no
    longer be notified of impending disable via href="https://developer.android.com/reference/android/app/admin/DeviceAdminReceiver.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog#onDisableRequested(android.content.Context,%20android.content.Intent)">onDisableRequested().
    These were tactics used by some ransomware to gain control of a
    device.

System Updates



Lastly, we've made significant enhancements to the OTA update system to keep
your device up-to-date much more easily with the latest system software and
security patches. We've made the install time for OTAs faster, and the OTA size
smaller for security updates. You no longer have to wait for the optimizing apps
step, which was one of the slowest parts of the update process, because the new
JIT compiler has been href="https://developer.android.com/about/versions/nougat/android-7.0.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog#doze_on_the_go">optimized
to make installs and updates lightning fast.



The update experience is even faster for new Android devices running Nougat with
updated firmware. Like they do with Chromebooks, updates are applied in the
background while the device continues to run normally. These updates are applied
to a different system partition, and when you reboot, it will seamlessly switch
to that new partition running the new system software version.





We’re constantly working to improve Android security and Android Nougat brings
significant security improvements across all fronts. As always, we appreciate
feedback on our work and welcome suggestions for how we can improve Android.
Contact us at security@android.com.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Android N APIs are now final, get your apps ready for Android N!

Posted by Dave Burke, VP of Engineering






As we put the finishing touches on the href="https://developer.android.com/preview/index.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">next release of
Android, which will begin to roll out to consumers later this summer, we’re
releasing the 4th Developer Preview of Android N, including the Android N final
SDK
. And thanks to your continued feedback over the last three releases, all of
the APIs are now final as well. If you’ve already enrolled your device in the
Android Beta Program, (available at href="https://android.com/beta">android.com/beta) you will receive an update
to this Developer Preview shortly.


Get your apps ready for Android N



The final SDK for Android N is now available for download through the SDK
Manager in Android
Studio
. It gives you everything you need to develop and test against the
official APIs in the Android N platform. Once you’ve installed the final SDK,
you can update your project’s compileSdkVersion to API 24 to
develop with the Android N APIs and build and test on the new platform, for href="https://developer.android.com/preview/api-overview.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">new features
such as Multi-window support, direct-reply notifications, and others. We also
recommend updating your app’s targetSdkVersion to API 24 to opt-in
and test your app with Android N specific href="https://developer.android.com/preview/behavior-changes.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">behavior
changes. For details on how to setup your app with the final SDK, see href="https://developer.android.com/preview/setup-sdk.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">Set up the
Preview. For details on API level 24 check out the href="https://developer.android.com/sdk/api_diff/24/changes.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">API diffs
and the updated href="https://developer.android.com/reference/packages.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">API reference,
now hosted online.



Along with the Android N final SDK, we’ve also updated the href="https://developer.android.com/topic/libraries/support-library/revisions.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">Android
Support Library to 24.0.0. This allows you to use multi-window and
picture-in-picture callbacks, new notification features, methods for supporting
Direct Boot, and new MediaBrowser APIs in a backward compatible manner.


Publish your apps to alpha, beta or production channels in Google Play



Now that you have a final set of APIs, you can publish updates compiling with,
and optionally targeting, API 24 to Google Play. You can now publish app updates
that use API 24 to your alpha, beta, or even production channels in the Google
Play Developer Console. In this way, you can test your app’s
backward-compatibility and push updates to users whose devices are running
Developer Preview 4.



To make sure that your updated app runs well on Android N, as well as older
versions, a common strategy is to use href="https://developer.android.com/distribute/engage/beta.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">Google Play’s
beta testing feature to get early feedback from a small group of users --
including developer preview users — and then do a staged rollout as you release
the updated app to all users.


How to Get Developer Preview 4



Developer Preview 4 includes updated system images for all supported Preview
devices as well as for the Android emulator. If you are already enrolled in the
Android Beta program, your devices will
get the Developer Preview 4 update right away, no action is needed on your part.
If you aren’t yet enrolled in Android Beta, the easiest way to get started is by
visiting android.com/beta and opt-in your
eligible Android phone or tablet -- you’ll soon receive this (and later) preview
updates over-the-air. As always, you can also download and href="https://developer.android.com/preview/download.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog#flash">flash this
update manually. The N Developer Preview is available for Nexus 6, Nexus 5X,
Nexus 6P, Nexus 9, and Pixel C devices, as well as General Mobile 4G [Android
One] devices and the Sony Xperia Z3.



Thanks so much for all of your feedback so far. Please continue to share
feedback or requests either in the href="https://code.google.com/p/android/issues/list?can=2&q=label%3ADevPreview-N">N
Developer Preview issue tracker, href="https://plus.google.com/communities/103655397235276743411">N
Preview Developer community, or href="https://plus.google.com/communities/106765800802768335079">Android Beta
community as we work towards the consumer release later this summer. We’re
looking forward to seeing your apps on Android N!















  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS