History of Android Security – from linux to jelly bean
About Me
2000 AT&T Wireless: OODB/CORBA

2001Cellvic(JTEL): CellvicOS/JVM

2003 Samsung: JVM for DTV/SimpleJIT

2007 Aromasoft: JVM for Mobile/JIT Optimization/Dalvik

2011 GE korea: Smart appliance/Linux

2012 SK플래닛: Android/T-Store ARM/Security
   – jungpil.@sk.com 또는 lifeisliving@naver.com
History of Android Security – from linux to jelly bean
History of Android Security – from linux to jelly bean
• 개인정보가 인터넷으로 빠져나간다

• 앱이 허락받지 않은 인터넷을 사용한다

• 앱이 허락받지 않은 동작(?)을 한다

• 앱이 스스로 루팅을 한다

• 앱이 코드를 스스로 변경한다

• 앱이 Dalvik VM의 정보를 변경한다

• 안드로이드앱이 Dalvik VM이 아닌 다른 VM을 실행시킨다
History of Android Security – from linux to jelly bean
• 5억대 판매된, 하루에 130만대씩
  개통되는 단말?
• A Java platform?
   – 역사상 자바가 표준 개발언어인 첫
     번째 디바이스? RIM? NDK?
• A forked Linux?
   – Why linux?
      • Andy Rubin: was a Apple Employee
      • 대안이 없어서?
   – 역사상 가장 많이 팔린 linux device?
• Linux: Open Source
   – ‘mkdir android ; cd android ; repo init -u
     git://android.git.kernel.org/platform/manifest.git ; repo sync ;
     make’

• Java: easy to learn, many developers
   – but an easy language for reverse-enigneering
       • dex2jar, APKTool, JD-GUI, APKInspector, Smali, Dedexer,,,

• 환상의 커플!!!
• Just a linux application
   – following Google guides
• Linux Process

• Dalvik VM

• Bionic

• JNI

• Is that all???
   – Missing something…

   – PackageManager, ActivityManager,,,
• Java?




• No more on Android!!!
• Dalvik VM is not a security boundary!!!
   – But Linux Process
• Linux UID/Group ID:
   – a unique id based on its signature assigned when it starts

• Linux DAC: all or nothing
   – old style

   – root can do everything

   – RWX
• Permission
     – Need to be described on
         AndroidMeanifest.xml

• Binder

• Kernel Enforcement
     – group ID
<permission name="android.permission.INTERNET" >
            •
<group gid="inet" />
</permission>




     – Patch
            • Internet
• You can do everything in your process
• You can use Reflection/JNI
   – To call hidden/private methods
   – To get/set private fields
• But High return, High risk!!!
   ex) Unity3D: Using Mono VM
History of Android Security – from linux to jelly bean
Distribution (Se
                                                API leve
            Version            Release date                ptember 4, 201
                                                    l
                                                                  2)

4.1.x Jelly Bean           July 9, 2012         16         1.2%

4.0.x Ice Cream Sandwich   October 19, 2011     14-15      20.9%

3.x.x Honeycomb            February 22, 2011    11-13      2.1%

2.3.x Gingerbread          December 6, 2010     9-10       57.5%

2.2 Froyo                  May 20, 2010         8          14%

2.0, 2.1 Eclair            October 26, 2009     7          3.7%

1.6 Donut                  September 15, 2009   4          0.4%

1.5 Cupcake                April 30, 2009       3          0.2%
• NX bit(No eXecute):
   – to prevent code execution on heap and stack(2.3+)

• Prelink: Used to speed up boot process
   – removed to prevent return-to-libc attacks(4.0+)

• Address Space Layout Randomization(4.0+)
   – randomize key locations in memory

• PIE (Position Independent Executable)
   – supports (4.1+)
• FileSystem Encryption
  – 3.0+ provides full filesystem encryption. 128bit AES
    key derived from user password

• Credential Storage
  – 1.6+ restricted for only system

  – 4.0+ provides public API
• 1st. Protected APK
    – /data/app: apk without code

    – /data/app-private: protected by filesystem

• 2nd. License Verification Library(LVL)
    – Google: 2010/7

    – Amazon: DRM, T-Store:ARM

• 3rd. Encrypted APK
    – Jelly Bean

    – Temporary Closed… but
History of Android Security – from linux to jelly bean
• ODEX File: optimized dex file

                           dex file
                                        Dalvik Virtual
                           odex file      Machine
                 Storage               (JIT Compiler)

                            (reuse)



     decompile             hijacking
• 4.0+ provides a raw dex loading API
   – Without ODEX!!!
• Applying SELinux in Android by NSA

• Linux Security Modules
   – Standard Linux Security (Hooking) Framework from v2.6
      task management (creation, signaling, waiting), program loading (execve), file system management (superblock,
      inode, and filehooks), IPC (message queues, shared memory, and semaphore operations), module hooks
      (insertion and removal), and network hooks (covering sockets, netlink, network devices, and other protocol
      interfaces)  security.h
•   2012/1 AOSP master branch added(HAVE_SELINUX)

     – in external/libselinux and external/sepolicy

     – in core/java and core/jni

         • SELinux.java, AndroidRuntime.cpp, android_os_SELinux.cpp

•   Slow and incremental applying expected
     – not enforcing mode but permissive mode

     – Android 5.0?

•   Need to consider it!
• ARM’s HW solution

• Virtualized processors on a ARM chip

• Secure World can read Normal World
   – But Normal World can’t read Secure World

• Already on Galaxy S3!!!
History of Android Security – from linux to jelly bean
• Use Obfuscator

• Use Native Code

• Keep data on your server

• Sorry, Find your own solutions!
   – 2011 Google I/O Evading Pirates and Stopping Vampires using License
     Verification Library, In-App Billing, and App Engine

   – 2012.4 Code Obfuscation for the Amazon In-App
• Even Android has many security problems, it is an open,
  de-facto platform now

• It’s getting better but you need to keep your data/code by
  your own ways

• Its openness and flexibility could give some chances to
  creative developers

• T-Store promises to help you soon!
History of Android Security – from linux to jelly bean
History of Android Security – from linux to jelly bean

More Related Content

PPTX
Android Architecture
PDF
DockerCon SF 2015: Docker Security
PPTX
IOS Security Basics - NULL/ OWASP/G4H Meet
PPTX
PDF
BlackHat USA 2011 - Stefan Esser - iOS Kernel Exploitation
PPTX
Android Booting Sequence
PPT
Learning AOSP - Android Linux Device Driver
PDF
Linux on Hyper-V
Android Architecture
DockerCon SF 2015: Docker Security
IOS Security Basics - NULL/ OWASP/G4H Meet
BlackHat USA 2011 - Stefan Esser - iOS Kernel Exploitation
Android Booting Sequence
Learning AOSP - Android Linux Device Driver
Linux on Hyper-V

What's hot (20)

PPTX
ChinaNetCloud - Cloud Operations for Gaming - Tencent July 2014
PDF
Gentoo Linux, or Why in the World You Should Compile Everything
PPTX
FileBot 4 Synology
PDF
108484130 pod2g-jailbreak-techniques-wwjc-2012
PPT
Learning AOSP - Android Booting Process
PDF
Hacking Android OS
PDF
Metasploitation part-1 (murtuja)
PDF
Timings of Init : Android Ramdisks for the Practical Hacker
PDF
Docker 1.11 Meetup: Containerd and runc, by Arnaud Porterie and Michael Crosby
PDF
Introduction to Docker
PPTX
Device Drivers in Linux
PDF
Dockerizing your applications - Docker workshop @Twitter
PDF
ABS 2014 - The Growth of Android in Embedded Systems
PPTX
Setup a Dev environment that feels like $HOME on Windows 10
PDF
A million ways to provision embedded linux devices
PPT
Android booting sequece and setup and debugging
PDF
Course 101: Lecture 6: Installing Ubuntu
PPT
DOCX
PDF
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
ChinaNetCloud - Cloud Operations for Gaming - Tencent July 2014
Gentoo Linux, or Why in the World You Should Compile Everything
FileBot 4 Synology
108484130 pod2g-jailbreak-techniques-wwjc-2012
Learning AOSP - Android Booting Process
Hacking Android OS
Metasploitation part-1 (murtuja)
Timings of Init : Android Ramdisks for the Practical Hacker
Docker 1.11 Meetup: Containerd and runc, by Arnaud Porterie and Michael Crosby
Introduction to Docker
Device Drivers in Linux
Dockerizing your applications - Docker workshop @Twitter
ABS 2014 - The Growth of Android in Embedded Systems
Setup a Dev environment that feels like $HOME on Windows 10
A million ways to provision embedded linux devices
Android booting sequece and setup and debugging
Course 101: Lecture 6: Installing Ubuntu
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Ad

Viewers also liked (20)

PDF
Google Android Security 2014 Report
PPTX
Android security by ravi-rai
PPSX
Android OS and its Features
PDF
Android Security: Defending Your Users
PPTX
SydMobNet March 2016: Matthew Robbins - Android M Security Policies
PDF
The 25 hour of day | Mawa3ed
PDF
Android Internals (This is not the droid you’re loking for...)
PPTX
Android application for gps
PDF
Смирнов Александр, Security in Android Application
PDF
SecureDroid: An Android Security Framework Extension for Context-Aware policy...
PDF
Android Project report on City Tourist Location based services (Shuja ul hassan)
PDF
600.250 UI Cross Platform Development and the Android Security Model
PPTX
Android audio system(audioplicy_service)
PPTX
Security threats in Android OS + App Permissions
PDF
Sperasoft talks: Android Security Threats
PDF
Consulthink @ GDG Meets U - L'Aquila2014 - Codelab: Android Security -Il ke...
PDF
2015.04.24 Updated > Android Security Development - Part 1: App Development
PPTX
Permission in Android Security: Threats and solution
PDF
Android Application And Unity3D Game Documentation
PDF
Android Security
Google Android Security 2014 Report
Android security by ravi-rai
Android OS and its Features
Android Security: Defending Your Users
SydMobNet March 2016: Matthew Robbins - Android M Security Policies
The 25 hour of day | Mawa3ed
Android Internals (This is not the droid you’re loking for...)
Android application for gps
Смирнов Александр, Security in Android Application
SecureDroid: An Android Security Framework Extension for Context-Aware policy...
Android Project report on City Tourist Location based services (Shuja ul hassan)
600.250 UI Cross Platform Development and the Android Security Model
Android audio system(audioplicy_service)
Security threats in Android OS + App Permissions
Sperasoft talks: Android Security Threats
Consulthink @ GDG Meets U - L'Aquila2014 - Codelab: Android Security -Il ke...
2015.04.24 Updated > Android Security Development - Part 1: App Development
Permission in Android Security: Threats and solution
Android Application And Unity3D Game Documentation
Android Security
Ad

Similar to History of Android Security – from linux to jelly bean (20)

PDF
[A2]android security의 과거와 미래 – from linux to jelly bean
PPTX
Android platform
PPTX
On non existent 0-days, stable binary exploits and
PDF
Esage on non-existent 0-days, stable binary exploits and user interaction
PDF
Improve Android System Component Performance
PPTX
1319571 634635606205391250
PPTX
Cont0519
PDF
Lions, Tigers and Deers: What building zoos can teach us about securing micro...
PDF
Android Attacks
PDF
WTF my container just spawned a shell!
PDF
Docker: Testing to Production
PPTX
Docker Security
PDF
Container Security
PDF
Android report.
PPTX
Hacker Halted 2014 - Reverse Engineering the Android OS
PPTX
Android icecream sandwich
PPT
Android OS
PPTX
Android ppt
PDF
Droidcon uk2012 androvm
PDF
CNIT 128 Ch 4: Android
[A2]android security의 과거와 미래 – from linux to jelly bean
Android platform
On non existent 0-days, stable binary exploits and
Esage on non-existent 0-days, stable binary exploits and user interaction
Improve Android System Component Performance
1319571 634635606205391250
Cont0519
Lions, Tigers and Deers: What building zoos can teach us about securing micro...
Android Attacks
WTF my container just spawned a shell!
Docker: Testing to Production
Docker Security
Container Security
Android report.
Hacker Halted 2014 - Reverse Engineering the Android OS
Android icecream sandwich
Android OS
Android ppt
Droidcon uk2012 androvm
CNIT 128 Ch 4: Android

History of Android Security – from linux to jelly bean

  • 2. About Me 2000 AT&T Wireless: OODB/CORBA 2001Cellvic(JTEL): CellvicOS/JVM 2003 Samsung: JVM for DTV/SimpleJIT 2007 Aromasoft: JVM for Mobile/JIT Optimization/Dalvik 2011 GE korea: Smart appliance/Linux 2012 SK플래닛: Android/T-Store ARM/Security – jungpil.@sk.com 또는 lifeisliving@naver.com
  • 5. • 개인정보가 인터넷으로 빠져나간다 • 앱이 허락받지 않은 인터넷을 사용한다 • 앱이 허락받지 않은 동작(?)을 한다 • 앱이 스스로 루팅을 한다 • 앱이 코드를 스스로 변경한다 • 앱이 Dalvik VM의 정보를 변경한다 • 안드로이드앱이 Dalvik VM이 아닌 다른 VM을 실행시킨다
  • 7. • 5억대 판매된, 하루에 130만대씩 개통되는 단말? • A Java platform? – 역사상 자바가 표준 개발언어인 첫 번째 디바이스? RIM? NDK? • A forked Linux? – Why linux? • Andy Rubin: was a Apple Employee • 대안이 없어서? – 역사상 가장 많이 팔린 linux device?
  • 8. • Linux: Open Source – ‘mkdir android ; cd android ; repo init -u git://android.git.kernel.org/platform/manifest.git ; repo sync ; make’ • Java: easy to learn, many developers – but an easy language for reverse-enigneering • dex2jar, APKTool, JD-GUI, APKInspector, Smali, Dedexer,,, • 환상의 커플!!!
  • 9. • Just a linux application – following Google guides
  • 10. • Linux Process • Dalvik VM • Bionic • JNI • Is that all??? – Missing something… – PackageManager, ActivityManager,,,
  • 11. • Java? • No more on Android!!! • Dalvik VM is not a security boundary!!! – But Linux Process
  • 12. • Linux UID/Group ID: – a unique id based on its signature assigned when it starts • Linux DAC: all or nothing – old style – root can do everything – RWX
  • 13. • Permission – Need to be described on AndroidMeanifest.xml • Binder • Kernel Enforcement – group ID <permission name="android.permission.INTERNET" > • <group gid="inet" /> </permission> – Patch • Internet
  • 14. • You can do everything in your process • You can use Reflection/JNI – To call hidden/private methods – To get/set private fields • But High return, High risk!!! ex) Unity3D: Using Mono VM
  • 16. Distribution (Se API leve Version Release date ptember 4, 201 l 2) 4.1.x Jelly Bean July 9, 2012 16 1.2% 4.0.x Ice Cream Sandwich October 19, 2011 14-15 20.9% 3.x.x Honeycomb February 22, 2011 11-13 2.1% 2.3.x Gingerbread December 6, 2010 9-10 57.5% 2.2 Froyo May 20, 2010 8 14% 2.0, 2.1 Eclair October 26, 2009 7 3.7% 1.6 Donut September 15, 2009 4 0.4% 1.5 Cupcake April 30, 2009 3 0.2%
  • 17. • NX bit(No eXecute): – to prevent code execution on heap and stack(2.3+) • Prelink: Used to speed up boot process – removed to prevent return-to-libc attacks(4.0+) • Address Space Layout Randomization(4.0+) – randomize key locations in memory • PIE (Position Independent Executable) – supports (4.1+)
  • 18. • FileSystem Encryption – 3.0+ provides full filesystem encryption. 128bit AES key derived from user password • Credential Storage – 1.6+ restricted for only system – 4.0+ provides public API
  • 19. • 1st. Protected APK – /data/app: apk without code – /data/app-private: protected by filesystem • 2nd. License Verification Library(LVL) – Google: 2010/7 – Amazon: DRM, T-Store:ARM • 3rd. Encrypted APK – Jelly Bean – Temporary Closed… but
  • 21. • ODEX File: optimized dex file dex file Dalvik Virtual odex file Machine Storage (JIT Compiler) (reuse) decompile hijacking • 4.0+ provides a raw dex loading API – Without ODEX!!!
  • 22. • Applying SELinux in Android by NSA • Linux Security Modules – Standard Linux Security (Hooking) Framework from v2.6 task management (creation, signaling, waiting), program loading (execve), file system management (superblock, inode, and filehooks), IPC (message queues, shared memory, and semaphore operations), module hooks (insertion and removal), and network hooks (covering sockets, netlink, network devices, and other protocol interfaces)  security.h
  • 23. 2012/1 AOSP master branch added(HAVE_SELINUX) – in external/libselinux and external/sepolicy – in core/java and core/jni • SELinux.java, AndroidRuntime.cpp, android_os_SELinux.cpp • Slow and incremental applying expected – not enforcing mode but permissive mode – Android 5.0? • Need to consider it!
  • 24. • ARM’s HW solution • Virtualized processors on a ARM chip • Secure World can read Normal World – But Normal World can’t read Secure World • Already on Galaxy S3!!!
  • 26. • Use Obfuscator • Use Native Code • Keep data on your server • Sorry, Find your own solutions! – 2011 Google I/O Evading Pirates and Stopping Vampires using License Verification Library, In-App Billing, and App Engine – 2012.4 Code Obfuscation for the Amazon In-App
  • 27. • Even Android has many security problems, it is an open, de-facto platform now • It’s getting better but you need to keep your data/code by your own ways • Its openness and flexibility could give some chances to creative developers • T-Store promises to help you soon!