SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Improving our Android
 Application Sandbox
      (DroidBox)
Student: Kun Yang <kelwya@gmail.com>
      ORG: The Honeynet Project
     Primary mentor: Patrik Lantz
                      Felix Leder
    Backup mentor: Anthony Desnos
                    Jianwei Zhuge
Outline
•    Goals	
  
•    Current	
  design	
  and	
  work	
  
•    Demos	
  
•    Future	
  works
Goals
•  Port	
  DroidBox	
  to	
  support	
  Android	
  2.3	
  
•  Repackage	
  APK	
  to	
  monitor	
  API	
  in	
  runAme	
  to	
  
   avoid	
  endless	
  upgrade	
  of	
  DroidBox
DroidBox	
  for	
  Android	
  2.3
•  Based	
  on	
  TaintDroid	
  2.3[1]	
  
•  Fixed	
  some	
  bugs	
  
   –  output	
  string	
  processing	
  related	
  bug	
  
   –  network	
  file	
  descriptor	
  idenAfier	
  related	
  bug	
  
•  Hooked	
  sensiAve	
  API	
  like	
  previous	
  version	
  
•  Adjusted	
  some	
  hooking	
  
   –  Moved	
  IO	
  hooking	
  to	
  naAve	
  code	
  layer	
  
•  Released	
  beta	
  version	
  in	
  project	
  page
DroidBox APIMonitor
•  Based	
  on	
  smali/baksmali	
  
•  Parsed	
  smali	
  into	
  tree	
  structure	
  
•  Intercepted	
  different	
  kinds	
  of	
  methods	
  
     –  Instance	
  method	
  
     –  Constructor	
  
     –  StaAc	
  method	
  
•  Output	
  parameters	
  and	
  return	
  value	
  of	
  different	
  types	
  
     –  Basic	
  type:	
  String.valueOf(type)	
  
     –  Object:	
  object.toString()	
  
     –  Array:	
  Java	
  ReflecAon	
  
•  Build	
  API	
  database	
  to	
  detect	
  methods	
  inherited	
  from	
  API	
  
•  Developed	
  APK	
  instrumentaAon	
  library(APKIL)	
  
APIMonitor Architecture
                           API
           API List
                         Database



                                        NEW
    APK          APIMonitor
                                        APK



                               Real
                                          Emulators
                              Devices



    Logs                                ADB
Smali Parsing
                                 SmaliTree


                                 ClassNode



                     FieldNode           MethodNode




          InsnNode   LabelNode        TryNode   SwitchNode   ArrayDataNode




Insn35cNode      Insn3rcNode
Method	
  Interception
•  Use	
  the	
  similar	
  framework	
  design	
  of	
  I-­‐ARM-­‐
   Droid[2]	
  
•  Basic	
  workflow	
  example:	
  
    –  Intercept	
  methods	
  in	
  class	
  Ljava/net/URL	
  
    1.  Define	
  new	
  class	
  Ldroidbox/java/net/URL	
  
    2.  Implement	
  corresponding	
  staAc	
  methods	
  to	
  
         monitor	
  (do	
  the	
  real	
  API	
  call	
  in	
  it)	
  
    3.  Replace	
  API	
  calls	
  with	
  new	
  methods
Intercept Instance Method
Android API:
    	
  Ljava/net/URL;-­‐>openConnecAon()Ljava/net/
URLConnecAon;	
  
Stub Method:
      	
  staAc	
  Ldroidbox/java/net/URL;-­‐>openConnecAon
(Ldroidbox/java/net/URL;)Ljava/net/URLConnecAon;	
  
opcode: invoke-­‐virtual,	
  invoke-­‐super,	
  invoke-­‐interface(/range)	
  
Intercept Static Method
Android API:	
  
Landroid/net/Uri;-­‐>parse(Ljava/lang/String;)Landrod/
net/Uri	
  
Stub Method:	
  
staAc	
  Ldroidbox/android/net/Uri;-­‐>parse(Ljava/lang/
String;)Landrod/net/Uri	
  
opcode: invoke-­‐staAc(/range)	
  
	
  
Intercept Constructor
Android API:	
  
Ljava/net/URL;-­‐><init>(Ljava/lang/String)V	
  
Stub Method:	
  
staAc	
  Ldroidbox/java/net/URL;-­‐>droidbox_cons(Ljava/
lang/String)Ljava/net/URL;	
  
opcode: invoke-­‐direct(/range)	
  




                                      Does	
  it	
  always	
  work?	
  No!
Intercept Constructor
ExcepAon:




            v19 is uninitialized!
Monitor Constructor
We	
  can’t	
  intercept	
  constructors	
  by	
  replacing	
  them	
  with	
  the	
  stub	
  
methods.	
  
	
  
Just	
  insert	
  new	
  method	
  droidbox_cons	
  for	
  monitoring.
Parameters Output
•  Basic	
  Type	
  
    –  String.valueOf(int)	
  
    –  String.valueOf(long)	
  
    –  String.valueOf(double)	
  
    –  String.valueOf(fload)	
  
    –  String.valueOf(short)	
  
    –  String.valueOf(boolean)	
  
    –  String.valueOf(byte)	
  
    –  String.valueOf(char)
Parameters Output
•  Object	
  and	
  Array	
  
    –  Implement	
  droidbox.apimonitor.Helper.toString(Object)	
  
Build API Database




apkil.tests.APKIL;-­‐>openFileOutput:	
  NOT	
  ANDROID	
  API

                                          Inherited from:
                                          Landroid/content/ContextWrapper;-­‐>	
  
                                          openFileOutput(Ljava/lang/String;I)	
  
Build API Database
•  Build	
  API	
  Database	
  to	
  detect	
  methods	
  
   inherited	
  from	
  API	
  
•  How	
  to	
  find	
  connecAons	
  of	
  classes	
  in	
  API	
  
    –  find	
  all	
  class	
  names:	
  jar	
  –f	
  android.jar	
  
    –  find	
  all	
  method	
  signatures	
  in	
  a	
  class:	
  javap	
  –
       bootclasspath	
  android.jar	
  –s	
  classname
How to use APIMonitor
usage:	
  apimonitor.py	
  [-­‐h]	
  [-­‐o,	
  -­‐-­‐output	
  dirpath]	
  [-­‐a,	
  -­‐-­‐api	
  apilist]	
  [-­‐v,	
  -­‐-­‐version]	
  
filename	
  
	
  
posiAonal	
  arguments:	
  
           	
  filename	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  path	
  of	
  APK	
  file	
  

opAonal	
  arguments:	
  
       	
  -­‐h,	
  -­‐-­‐help	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  show	
  this	
  help	
  message	
  and	
  exit	
  
       	
  -­‐o,	
  -­‐-­‐output	
  dirpath	
  	
  output	
  directory	
  
       	
  -­‐a,	
  -­‐-­‐api	
  apilist	
  	
  	
  	
  	
  config	
  file	
  of	
  API	
  list	
  
       	
  -­‐v,	
  -­‐-­‐version	
  	
  	
  	
  	
  	
  	
  	
  	
  show	
  program's	
  version	
  number	
  and	
  exit
Specify APIs in Config File
  $./apimonitor.py	
  –a	
  config_file	
  –o	
  outdir	
  sample.apk
  •  API	
  configuraAon	
  file	
  
       –  One	
  method:	
  Method	
  signature	
  without	
  return	
  value	
  
             •  Landroid/content/Intent;-­‐><init>(Ljava/lang/String;)	
  
       –  All	
  methods	
  with	
  same	
  name:	
  Method	
  signature	
  without	
  
          parameters	
  and	
  return	
  value	
  
             •  Landroid/content/Intent;-­‐><init>	
  
       –  All	
  methods	
  of	
  the	
  same	
  Class:	
  Class	
  signature	
  
             •  Landroid/content/Intent;	
  
View logs
•  DDMS	
  
•  $adb	
  logcat
Demo logs
•  APKILTests.apk	
  
   –  Developed	
  to	
  test	
  APIMonitor	
  
   –  Called	
  some	
  common	
  sensiAve	
  API	
  for	
  tesAng
                             Get	
  IMEI/IMSI	
  &	
  MD5	
  hash
Demo logs
                         AES	
  
                         Cipher




            File	
  IO


            Get	
  installed	
  
            applicaAon	
  list
Demo logs




Send	
  SMS	
  &	
  Phone	
  Call
Real-­‐world	
  malware
•  fishbot	
  
   –  It	
  was	
  found	
  in	
  China	
  
   –  Goal:	
  Find	
  C&C	
  server	
  URL	
  which	
  is	
  encrypted	
  in	
  
      bytecode	
  
                                                       C&C	
  Server	
  address
Future	
  works
•  Collect	
  and	
  classify	
  sensiAve	
  Android	
  APIs	
  for	
  
     different	
  use	
  of	
  analysis	
  
•  Move	
  APIMonitor	
  to	
  the	
  cloud(under	
  
     developing)	
  
•  Do	
  deep	
  analysis	
  on	
  monitoring	
  logs	
  to	
  dig	
  
     more	
  informaAon	
  
•  Modify	
  dalvik	
  to	
  support	
  dynamic	
  
     instrumentaAon	
  
	
  
References
•  [1]	
  TaintDroid:	
  RealAme	
  Privacy	
  Monitoring	
  on	
  
   Smartphones	
  
•  [2]	
  I-­‐ARM-­‐Droid:A	
  RewriAng	
  Framework	
  for	
  In-­‐
   App	
  Reference	
  Monitors	
  for	
  Android	
  
   ApplicaAons	
  
Links
•  Project	
  Page:	
  hkp://code.google.com/p/
   droidbox	
  
•  APIMonitor	
  Wiki:	
  hkp://code.google.com/p/
   droidbox/wiki/APIMonitor	
  
•  APIMonitor	
  repo:	
  hkp://github.com/kelwin/
   apkil	
  

Weitere ähnliche Inhalte

Was ist angesagt?

Android reverse engineering - Analyzing skype
Android reverse engineering - Analyzing skypeAndroid reverse engineering - Analyzing skype
Android reverse engineering - Analyzing skypeMário Almeida
 
Log4j Logging Mechanism
Log4j Logging MechanismLog4j Logging Mechanism
Log4j Logging MechanismKunal Dabir
 
Net serialization
Net serializationNet serialization
Net serializationGreg Sohl
 
Ida python intro
Ida python introIda python intro
Ida python intro小静 安
 
Reverse Engineering iOS apps
Reverse Engineering iOS appsReverse Engineering iOS apps
Reverse Engineering iOS appsMax Bazaliy
 
Null 14 may_lesser_known_attacks_by_ninadsarang
Null 14 may_lesser_known_attacks_by_ninadsarangNull 14 may_lesser_known_attacks_by_ninadsarang
Null 14 may_lesser_known_attacks_by_ninadsarangNinad Sarang
 
Java byte code & virtual machine
Java byte code & virtual machineJava byte code & virtual machine
Java byte code & virtual machineLaxman Puri
 
(CISC 2013) Real-Time Record and Replay on Android for Malware Analysis
(CISC 2013) Real-Time Record and Replay on Android for Malware Analysis(CISC 2013) Real-Time Record and Replay on Android for Malware Analysis
(CISC 2013) Real-Time Record and Replay on Android for Malware AnalysisZongXian Shen
 
.NET Overview
.NET Overview.NET Overview
.NET OverviewGreg Sohl
 
Introduction to ida python
Introduction to ida pythonIntroduction to ida python
Introduction to ida pythongeeksec80
 
.NET Profilers and IL Rewriting - DDD Melbourne 2
.NET Profilers and IL Rewriting - DDD Melbourne 2.NET Profilers and IL Rewriting - DDD Melbourne 2
.NET Profilers and IL Rewriting - DDD Melbourne 2Shaun Wilde
 
Who Needs Thumbs? Reverse Engineering Scramble With Friends
Who Needs Thumbs? Reverse Engineering Scramble With FriendsWho Needs Thumbs? Reverse Engineering Scramble With Friends
Who Needs Thumbs? Reverse Engineering Scramble With FriendsApkudo
 

Was ist angesagt? (20)

Reverse Engineering Android Application
Reverse Engineering Android ApplicationReverse Engineering Android Application
Reverse Engineering Android Application
 
Android reverse engineering - Analyzing skype
Android reverse engineering - Analyzing skypeAndroid reverse engineering - Analyzing skype
Android reverse engineering - Analyzing skype
 
Log4j Logging Mechanism
Log4j Logging MechanismLog4j Logging Mechanism
Log4j Logging Mechanism
 
Net serialization
Net serializationNet serialization
Net serialization
 
Ida python intro
Ida python introIda python intro
Ida python intro
 
Reverse Engineering iOS apps
Reverse Engineering iOS appsReverse Engineering iOS apps
Reverse Engineering iOS apps
 
Null 14 may_lesser_known_attacks_by_ninadsarang
Null 14 may_lesser_known_attacks_by_ninadsarangNull 14 may_lesser_known_attacks_by_ninadsarang
Null 14 may_lesser_known_attacks_by_ninadsarang
 
Java byte code & virtual machine
Java byte code & virtual machineJava byte code & virtual machine
Java byte code & virtual machine
 
Log4j in 8 slides
Log4j in 8 slidesLog4j in 8 slides
Log4j in 8 slides
 
(CISC 2013) Real-Time Record and Replay on Android for Malware Analysis
(CISC 2013) Real-Time Record and Replay on Android for Malware Analysis(CISC 2013) Real-Time Record and Replay on Android for Malware Analysis
(CISC 2013) Real-Time Record and Replay on Android for Malware Analysis
 
Log4j2
Log4j2Log4j2
Log4j2
 
.NET Overview
.NET Overview.NET Overview
.NET Overview
 
What is-java
What is-javaWhat is-java
What is-java
 
Introduction to ida python
Introduction to ida pythonIntroduction to ida python
Introduction to ida python
 
Mixing Python and Java
Mixing Python and JavaMixing Python and Java
Mixing Python and Java
 
.NET Profilers and IL Rewriting - DDD Melbourne 2
.NET Profilers and IL Rewriting - DDD Melbourne 2.NET Profilers and IL Rewriting - DDD Melbourne 2
.NET Profilers and IL Rewriting - DDD Melbourne 2
 
Logging
LoggingLogging
Logging
 
Who Needs Thumbs? Reverse Engineering Scramble With Friends
Who Needs Thumbs? Reverse Engineering Scramble With FriendsWho Needs Thumbs? Reverse Engineering Scramble With Friends
Who Needs Thumbs? Reverse Engineering Scramble With Friends
 
Java Basic PART I
Java Basic PART IJava Basic PART I
Java Basic PART I
 
Log4j
Log4jLog4j
Log4j
 

Andere mochten auch

Flying Presentation
Flying PresentationFlying Presentation
Flying Presentationdpatrikios
 
Brookings ua version ef
Brookings ua version efBrookings ua version ef
Brookings ua version efconsultclay
 
Childrens hospital-seattle
Childrens hospital-seattleChildrens hospital-seattle
Childrens hospital-seattleKemi Olojede
 
コミュニケーションのビジュアル化によるサービス品質向上とビジネスサイクル最適化
コミュニケーションのビジュアル化によるサービス品質向上とビジネスサイクル最適化コミュニケーションのビジュアル化によるサービス品質向上とビジネスサイクル最適化
コミュニケーションのビジュアル化によるサービス品質向上とビジネスサイクル最適化Iwasa Tomohiro
 
freeCodeCamp Tokyo meetup 19
freeCodeCamp Tokyo meetup 19freeCodeCamp Tokyo meetup 19
freeCodeCamp Tokyo meetup 19健太 田上
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2stefany
 
Tizen の未来と可能性
Tizen の未来と可能性Tizen の未来と可能性
Tizen の未来と可能性Naruto TAKAHASHI
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2stefany
 
Urdu Tutor for Beginners
Urdu Tutor for BeginnersUrdu Tutor for Beginners
Urdu Tutor for BeginnersSaad Manzoor
 
New test
New testNew test
New testIQM123
 
I linguaggi delle nostre professioni: l'ingegneria
I linguaggi delle nostre professioni: l'ingegneriaI linguaggi delle nostre professioni: l'ingegneria
I linguaggi delle nostre professioni: l'ingegneriapedagogiaglobale
 
NewTest-910080.ppt
NewTest-910080.pptNewTest-910080.ppt
NewTest-910080.pptIQM123
 
introaspnet-3030384.ppt
introaspnet-3030384.pptintroaspnet-3030384.ppt
introaspnet-3030384.pptIQM123
 

Andere mochten auch (20)

Flying Presentation
Flying PresentationFlying Presentation
Flying Presentation
 
Klíma
KlímaKlíma
Klíma
 
Brookings ua version ef
Brookings ua version efBrookings ua version ef
Brookings ua version ef
 
Childrens hospital-seattle
Childrens hospital-seattleChildrens hospital-seattle
Childrens hospital-seattle
 
コミュニケーションのビジュアル化によるサービス品質向上とビジネスサイクル最適化
コミュニケーションのビジュアル化によるサービス品質向上とビジネスサイクル最適化コミュニケーションのビジュアル化によるサービス品質向上とビジネスサイクル最適化
コミュニケーションのビジュアル化によるサービス品質向上とビジネスサイクル最適化
 
freeCodeCamp Tokyo meetup 19
freeCodeCamp Tokyo meetup 19freeCodeCamp Tokyo meetup 19
freeCodeCamp Tokyo meetup 19
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2
 
Hoa quynh
Hoa quynhHoa quynh
Hoa quynh
 
Tizen の未来と可能性
Tizen の未来と可能性Tizen の未来と可能性
Tizen の未来と可能性
 
MOVR 2014 Q3
MOVR 2014 Q3MOVR 2014 Q3
MOVR 2014 Q3
 
Doma natural: Esteban Labari i Lucy Rees
Doma natural: Esteban Labari i Lucy ReesDoma natural: Esteban Labari i Lucy Rees
Doma natural: Esteban Labari i Lucy Rees
 
Equipamentos de redes
Equipamentos de redesEquipamentos de redes
Equipamentos de redes
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2
 
Urdu Tutor for Beginners
Urdu Tutor for BeginnersUrdu Tutor for Beginners
Urdu Tutor for Beginners
 
New test
New testNew test
New test
 
I linguaggi delle nostre professioni: l'ingegneria
I linguaggi delle nostre professioni: l'ingegneriaI linguaggi delle nostre professioni: l'ingegneria
I linguaggi delle nostre professioni: l'ingegneria
 
NewTest-910080.ppt
NewTest-910080.pptNewTest-910080.ppt
NewTest-910080.ppt
 
Sensorize FreeRehab
Sensorize FreeRehabSensorize FreeRehab
Sensorize FreeRehab
 
introaspnet-3030384.ppt
introaspnet-3030384.pptintroaspnet-3030384.ppt
introaspnet-3030384.ppt
 
Tests de carga en la nube
Tests de carga en la nubeTests de carga en la nube
Tests de carga en la nube
 

Ähnlich wie Improving our Android Application Sandbox (DroidBox

Android Malware and Machine Learning
Android Malware and Machine LearningAndroid Malware and Machine Learning
Android Malware and Machine Learningcaleb194331
 
Practices and Tools for Building Better APIs
Practices and Tools for Building Better APIsPractices and Tools for Building Better APIs
Practices and Tools for Building Better APIsPeter Hendriks
 
Practices and tools for building better APIs
Practices and tools for building better APIsPractices and tools for building better APIs
Practices and tools for building better APIsNLJUG
 
Practices and tools for building better API (JFall 2013)
Practices and tools for building better API (JFall 2013)Practices and tools for building better API (JFall 2013)
Practices and tools for building better API (JFall 2013)Peter Hendriks
 
Android Auto instrumentation
Android Auto instrumentationAndroid Auto instrumentation
Android Auto instrumentationPrzemek Jakubczyk
 
Women Who Code - RSpec JSON API Workshop
Women Who Code - RSpec JSON API WorkshopWomen Who Code - RSpec JSON API Workshop
Women Who Code - RSpec JSON API WorkshopEddie Lau
 
Kubernetes API code-base tour
Kubernetes API code-base tourKubernetes API code-base tour
Kubernetes API code-base tourStefan Schimanski
 
Android application analyzer
Android application analyzerAndroid application analyzer
Android application analyzerSanjay Gondaliya
 
Swift Micro-services and AWS Technologies
Swift Micro-services and AWS TechnologiesSwift Micro-services and AWS Technologies
Swift Micro-services and AWS TechnologiesSimonPilkington8
 
Enforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code GenerationEnforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code GenerationTim Burks
 
2022 APIsecure_Securing APIs with Open Standards
2022 APIsecure_Securing APIs with Open Standards2022 APIsecure_Securing APIs with Open Standards
2022 APIsecure_Securing APIs with Open StandardsAPIsecure_ Official
 
Introduction to Laravel Framework (5.2)
Introduction to Laravel Framework (5.2)Introduction to Laravel Framework (5.2)
Introduction to Laravel Framework (5.2)Viral Solani
 
From System Engineer to Gopher
From System Engineer to GopherFrom System Engineer to Gopher
From System Engineer to GopherI-Fan Wang
 
Ruby on Rails Penetration Testing
Ruby on Rails Penetration TestingRuby on Rails Penetration Testing
Ruby on Rails Penetration Testing3S Labs
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Ryan Cuprak
 
Thick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseThick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseScott Sutherland
 
Bada familiar foundations
Bada  familiar foundationsBada  familiar foundations
Bada familiar foundationsjlansdell
 

Ähnlich wie Improving our Android Application Sandbox (DroidBox (20)

Android Malware and Machine Learning
Android Malware and Machine LearningAndroid Malware and Machine Learning
Android Malware and Machine Learning
 
Practices and Tools for Building Better APIs
Practices and Tools for Building Better APIsPractices and Tools for Building Better APIs
Practices and Tools for Building Better APIs
 
Practices and tools for building better APIs
Practices and tools for building better APIsPractices and tools for building better APIs
Practices and tools for building better APIs
 
Practices and tools for building better API (JFall 2013)
Practices and tools for building better API (JFall 2013)Practices and tools for building better API (JFall 2013)
Practices and tools for building better API (JFall 2013)
 
In app search 1
In app search 1In app search 1
In app search 1
 
Android Auto instrumentation
Android Auto instrumentationAndroid Auto instrumentation
Android Auto instrumentation
 
iOS Application Exploitation
iOS Application ExploitationiOS Application Exploitation
iOS Application Exploitation
 
Women Who Code - RSpec JSON API Workshop
Women Who Code - RSpec JSON API WorkshopWomen Who Code - RSpec JSON API Workshop
Women Who Code - RSpec JSON API Workshop
 
Kubernetes API code-base tour
Kubernetes API code-base tourKubernetes API code-base tour
Kubernetes API code-base tour
 
Android application analyzer
Android application analyzerAndroid application analyzer
Android application analyzer
 
Swift Micro-services and AWS Technologies
Swift Micro-services and AWS TechnologiesSwift Micro-services and AWS Technologies
Swift Micro-services and AWS Technologies
 
Enforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code GenerationEnforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code Generation
 
Decompiling Android
Decompiling AndroidDecompiling Android
Decompiling Android
 
2022 APIsecure_Securing APIs with Open Standards
2022 APIsecure_Securing APIs with Open Standards2022 APIsecure_Securing APIs with Open Standards
2022 APIsecure_Securing APIs with Open Standards
 
Introduction to Laravel Framework (5.2)
Introduction to Laravel Framework (5.2)Introduction to Laravel Framework (5.2)
Introduction to Laravel Framework (5.2)
 
From System Engineer to Gopher
From System Engineer to GopherFrom System Engineer to Gopher
From System Engineer to Gopher
 
Ruby on Rails Penetration Testing
Ruby on Rails Penetration TestingRuby on Rails Penetration Testing
Ruby on Rails Penetration Testing
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)
 
Thick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseThick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash Course
 
Bada familiar foundations
Bada  familiar foundationsBada  familiar foundations
Bada familiar foundations
 

Kürzlich hochgeladen

JORNADA 4 LIGA MURO 2024TUXTEPEC1234.pdf
JORNADA 4 LIGA MURO 2024TUXTEPEC1234.pdfJORNADA 4 LIGA MURO 2024TUXTEPEC1234.pdf
JORNADA 4 LIGA MURO 2024TUXTEPEC1234.pdfArturo Pacheco Alvarez
 
Instruction Manual | ThermTec Wild Thermal Monoculars | Optics Trade
Instruction Manual | ThermTec Wild Thermal Monoculars | Optics TradeInstruction Manual | ThermTec Wild Thermal Monoculars | Optics Trade
Instruction Manual | ThermTec Wild Thermal Monoculars | Optics TradeOptics-Trade
 
Call Girls in Dhaula Kuan 💯Call Us 🔝8264348440🔝
Call Girls in Dhaula Kuan 💯Call Us 🔝8264348440🔝Call Girls in Dhaula Kuan 💯Call Us 🔝8264348440🔝
Call Girls in Dhaula Kuan 💯Call Us 🔝8264348440🔝soniya singh
 
Technical Data | ThermTec Wild 335 | Optics Trade
Technical Data | ThermTec Wild 335 | Optics TradeTechnical Data | ThermTec Wild 335 | Optics Trade
Technical Data | ThermTec Wild 335 | Optics TradeOptics-Trade
 
Dubai Call Girls Bikni O528786472 Call Girls Dubai Ebony
Dubai Call Girls Bikni O528786472 Call Girls Dubai EbonyDubai Call Girls Bikni O528786472 Call Girls Dubai Ebony
Dubai Call Girls Bikni O528786472 Call Girls Dubai Ebonyhf8803863
 
Technical Data | ThermTec Wild 650L | Optics Trade
Technical Data | ThermTec Wild 650L | Optics TradeTechnical Data | ThermTec Wild 650L | Optics Trade
Technical Data | ThermTec Wild 650L | Optics TradeOptics-Trade
 
办理学位证(KCL文凭证书)伦敦国王学院毕业证成绩单原版一模一样
办理学位证(KCL文凭证书)伦敦国王学院毕业证成绩单原版一模一样办理学位证(KCL文凭证书)伦敦国王学院毕业证成绩单原版一模一样
办理学位证(KCL文凭证书)伦敦国王学院毕业证成绩单原版一模一样7pn7zv3i
 
Croatia vs Italy UEFA Euro 2024 Croatia's Checkered Legacy on Display in New ...
Croatia vs Italy UEFA Euro 2024 Croatia's Checkered Legacy on Display in New ...Croatia vs Italy UEFA Euro 2024 Croatia's Checkered Legacy on Display in New ...
Croatia vs Italy UEFA Euro 2024 Croatia's Checkered Legacy on Display in New ...Eticketing.co
 
IPL Quiz ( weekly quiz) by SJU quizzers.
IPL Quiz ( weekly quiz) by SJU quizzers.IPL Quiz ( weekly quiz) by SJU quizzers.
IPL Quiz ( weekly quiz) by SJU quizzers.SJU Quizzers
 
8377087607 ☎, Cash On Delivery Call Girls Service In Hauz Khas Delhi Enjoy 24/7
8377087607 ☎, Cash On Delivery Call Girls Service In Hauz Khas Delhi Enjoy 24/78377087607 ☎, Cash On Delivery Call Girls Service In Hauz Khas Delhi Enjoy 24/7
8377087607 ☎, Cash On Delivery Call Girls Service In Hauz Khas Delhi Enjoy 24/7dollysharma2066
 
Mysore Call Girls 7001305949 WhatsApp Number 24x7 Best Services
Mysore Call Girls 7001305949 WhatsApp Number 24x7 Best ServicesMysore Call Girls 7001305949 WhatsApp Number 24x7 Best Services
Mysore Call Girls 7001305949 WhatsApp Number 24x7 Best Servicesnajka9823
 
ppt on Myself, Occupation and my Interest
ppt on Myself, Occupation and my Interestppt on Myself, Occupation and my Interest
ppt on Myself, Occupation and my InterestNagaissenValaydum
 
Technical Data | ThermTec Wild 650 | Optics Trade
Technical Data | ThermTec Wild 650 | Optics TradeTechnical Data | ThermTec Wild 650 | Optics Trade
Technical Data | ThermTec Wild 650 | Optics TradeOptics-Trade
 
Real Moto 2 MOD APK v1.1.721 All Bikes, Unlimited Money
Real Moto 2 MOD APK v1.1.721 All Bikes, Unlimited MoneyReal Moto 2 MOD APK v1.1.721 All Bikes, Unlimited Money
Real Moto 2 MOD APK v1.1.721 All Bikes, Unlimited MoneyApk Toly
 
Resultados del Campeonato mundial de Marcha por equipos Antalya 2024
Resultados del Campeonato mundial de Marcha por equipos Antalya 2024Resultados del Campeonato mundial de Marcha por equipos Antalya 2024
Resultados del Campeonato mundial de Marcha por equipos Antalya 2024Judith Chuquipul
 
Expert Pool Table Refelting in Lee & Collier County, FL
Expert Pool Table Refelting in Lee & Collier County, FLExpert Pool Table Refelting in Lee & Collier County, FL
Expert Pool Table Refelting in Lee & Collier County, FLAll American Billiards
 
JORNADA 3 LIGA MURO 2024GHGHGHGHGHGH.pdf
JORNADA 3 LIGA MURO 2024GHGHGHGHGHGH.pdfJORNADA 3 LIGA MURO 2024GHGHGHGHGHGH.pdf
JORNADA 3 LIGA MURO 2024GHGHGHGHGHGH.pdfArturo Pacheco Alvarez
 
France's UEFA Euro 2024 Ambitions Amid Coman's Injury.docx
France's UEFA Euro 2024 Ambitions Amid Coman's Injury.docxFrance's UEFA Euro 2024 Ambitions Amid Coman's Injury.docx
France's UEFA Euro 2024 Ambitions Amid Coman's Injury.docxEuro Cup 2024 Tickets
 

Kürzlich hochgeladen (20)

JORNADA 4 LIGA MURO 2024TUXTEPEC1234.pdf
JORNADA 4 LIGA MURO 2024TUXTEPEC1234.pdfJORNADA 4 LIGA MURO 2024TUXTEPEC1234.pdf
JORNADA 4 LIGA MURO 2024TUXTEPEC1234.pdf
 
Instruction Manual | ThermTec Wild Thermal Monoculars | Optics Trade
Instruction Manual | ThermTec Wild Thermal Monoculars | Optics TradeInstruction Manual | ThermTec Wild Thermal Monoculars | Optics Trade
Instruction Manual | ThermTec Wild Thermal Monoculars | Optics Trade
 
Call Girls in Dhaula Kuan 💯Call Us 🔝8264348440🔝
Call Girls in Dhaula Kuan 💯Call Us 🔝8264348440🔝Call Girls in Dhaula Kuan 💯Call Us 🔝8264348440🔝
Call Girls in Dhaula Kuan 💯Call Us 🔝8264348440🔝
 
Technical Data | ThermTec Wild 335 | Optics Trade
Technical Data | ThermTec Wild 335 | Optics TradeTechnical Data | ThermTec Wild 335 | Optics Trade
Technical Data | ThermTec Wild 335 | Optics Trade
 
young Call girls in Moolchand 🔝 9953056974 🔝 Delhi escort Service
young Call girls in Moolchand 🔝 9953056974 🔝 Delhi escort Serviceyoung Call girls in Moolchand 🔝 9953056974 🔝 Delhi escort Service
young Call girls in Moolchand 🔝 9953056974 🔝 Delhi escort Service
 
Dubai Call Girls Bikni O528786472 Call Girls Dubai Ebony
Dubai Call Girls Bikni O528786472 Call Girls Dubai EbonyDubai Call Girls Bikni O528786472 Call Girls Dubai Ebony
Dubai Call Girls Bikni O528786472 Call Girls Dubai Ebony
 
Technical Data | ThermTec Wild 650L | Optics Trade
Technical Data | ThermTec Wild 650L | Optics TradeTechnical Data | ThermTec Wild 650L | Optics Trade
Technical Data | ThermTec Wild 650L | Optics Trade
 
办理学位证(KCL文凭证书)伦敦国王学院毕业证成绩单原版一模一样
办理学位证(KCL文凭证书)伦敦国王学院毕业证成绩单原版一模一样办理学位证(KCL文凭证书)伦敦国王学院毕业证成绩单原版一模一样
办理学位证(KCL文凭证书)伦敦国王学院毕业证成绩单原版一模一样
 
Croatia vs Italy UEFA Euro 2024 Croatia's Checkered Legacy on Display in New ...
Croatia vs Italy UEFA Euro 2024 Croatia's Checkered Legacy on Display in New ...Croatia vs Italy UEFA Euro 2024 Croatia's Checkered Legacy on Display in New ...
Croatia vs Italy UEFA Euro 2024 Croatia's Checkered Legacy on Display in New ...
 
IPL Quiz ( weekly quiz) by SJU quizzers.
IPL Quiz ( weekly quiz) by SJU quizzers.IPL Quiz ( weekly quiz) by SJU quizzers.
IPL Quiz ( weekly quiz) by SJU quizzers.
 
8377087607 ☎, Cash On Delivery Call Girls Service In Hauz Khas Delhi Enjoy 24/7
8377087607 ☎, Cash On Delivery Call Girls Service In Hauz Khas Delhi Enjoy 24/78377087607 ☎, Cash On Delivery Call Girls Service In Hauz Khas Delhi Enjoy 24/7
8377087607 ☎, Cash On Delivery Call Girls Service In Hauz Khas Delhi Enjoy 24/7
 
Mysore Call Girls 7001305949 WhatsApp Number 24x7 Best Services
Mysore Call Girls 7001305949 WhatsApp Number 24x7 Best ServicesMysore Call Girls 7001305949 WhatsApp Number 24x7 Best Services
Mysore Call Girls 7001305949 WhatsApp Number 24x7 Best Services
 
ppt on Myself, Occupation and my Interest
ppt on Myself, Occupation and my Interestppt on Myself, Occupation and my Interest
ppt on Myself, Occupation and my Interest
 
FULL ENJOY Call Girls In Savitri Nagar (Delhi) Call Us 9953056974
FULL ENJOY Call Girls In  Savitri Nagar (Delhi) Call Us 9953056974FULL ENJOY Call Girls In  Savitri Nagar (Delhi) Call Us 9953056974
FULL ENJOY Call Girls In Savitri Nagar (Delhi) Call Us 9953056974
 
Technical Data | ThermTec Wild 650 | Optics Trade
Technical Data | ThermTec Wild 650 | Optics TradeTechnical Data | ThermTec Wild 650 | Optics Trade
Technical Data | ThermTec Wild 650 | Optics Trade
 
Real Moto 2 MOD APK v1.1.721 All Bikes, Unlimited Money
Real Moto 2 MOD APK v1.1.721 All Bikes, Unlimited MoneyReal Moto 2 MOD APK v1.1.721 All Bikes, Unlimited Money
Real Moto 2 MOD APK v1.1.721 All Bikes, Unlimited Money
 
Resultados del Campeonato mundial de Marcha por equipos Antalya 2024
Resultados del Campeonato mundial de Marcha por equipos Antalya 2024Resultados del Campeonato mundial de Marcha por equipos Antalya 2024
Resultados del Campeonato mundial de Marcha por equipos Antalya 2024
 
Expert Pool Table Refelting in Lee & Collier County, FL
Expert Pool Table Refelting in Lee & Collier County, FLExpert Pool Table Refelting in Lee & Collier County, FL
Expert Pool Table Refelting in Lee & Collier County, FL
 
JORNADA 3 LIGA MURO 2024GHGHGHGHGHGH.pdf
JORNADA 3 LIGA MURO 2024GHGHGHGHGHGH.pdfJORNADA 3 LIGA MURO 2024GHGHGHGHGHGH.pdf
JORNADA 3 LIGA MURO 2024GHGHGHGHGHGH.pdf
 
France's UEFA Euro 2024 Ambitions Amid Coman's Injury.docx
France's UEFA Euro 2024 Ambitions Amid Coman's Injury.docxFrance's UEFA Euro 2024 Ambitions Amid Coman's Injury.docx
France's UEFA Euro 2024 Ambitions Amid Coman's Injury.docx
 

Improving our Android Application Sandbox (DroidBox

  • 1. Improving our Android Application Sandbox (DroidBox) Student: Kun Yang <kelwya@gmail.com> ORG: The Honeynet Project Primary mentor: Patrik Lantz Felix Leder Backup mentor: Anthony Desnos Jianwei Zhuge
  • 2. Outline •  Goals   •  Current  design  and  work   •  Demos   •  Future  works
  • 3. Goals •  Port  DroidBox  to  support  Android  2.3   •  Repackage  APK  to  monitor  API  in  runAme  to   avoid  endless  upgrade  of  DroidBox
  • 4. DroidBox  for  Android  2.3 •  Based  on  TaintDroid  2.3[1]   •  Fixed  some  bugs   –  output  string  processing  related  bug   –  network  file  descriptor  idenAfier  related  bug   •  Hooked  sensiAve  API  like  previous  version   •  Adjusted  some  hooking   –  Moved  IO  hooking  to  naAve  code  layer   •  Released  beta  version  in  project  page
  • 5. DroidBox APIMonitor •  Based  on  smali/baksmali   •  Parsed  smali  into  tree  structure   •  Intercepted  different  kinds  of  methods   –  Instance  method   –  Constructor   –  StaAc  method   •  Output  parameters  and  return  value  of  different  types   –  Basic  type:  String.valueOf(type)   –  Object:  object.toString()   –  Array:  Java  ReflecAon   •  Build  API  database  to  detect  methods  inherited  from  API   •  Developed  APK  instrumentaAon  library(APKIL)  
  • 6. APIMonitor Architecture API API List Database NEW APK APIMonitor APK Real Emulators Devices Logs ADB
  • 7. Smali Parsing SmaliTree ClassNode FieldNode MethodNode InsnNode LabelNode TryNode SwitchNode ArrayDataNode Insn35cNode Insn3rcNode
  • 8. Method  Interception •  Use  the  similar  framework  design  of  I-­‐ARM-­‐ Droid[2]   •  Basic  workflow  example:   –  Intercept  methods  in  class  Ljava/net/URL   1.  Define  new  class  Ldroidbox/java/net/URL   2.  Implement  corresponding  staAc  methods  to   monitor  (do  the  real  API  call  in  it)   3.  Replace  API  calls  with  new  methods
  • 9. Intercept Instance Method Android API:  Ljava/net/URL;-­‐>openConnecAon()Ljava/net/ URLConnecAon;   Stub Method:  staAc  Ldroidbox/java/net/URL;-­‐>openConnecAon (Ldroidbox/java/net/URL;)Ljava/net/URLConnecAon;   opcode: invoke-­‐virtual,  invoke-­‐super,  invoke-­‐interface(/range)  
  • 10. Intercept Static Method Android API:   Landroid/net/Uri;-­‐>parse(Ljava/lang/String;)Landrod/ net/Uri   Stub Method:   staAc  Ldroidbox/android/net/Uri;-­‐>parse(Ljava/lang/ String;)Landrod/net/Uri   opcode: invoke-­‐staAc(/range)    
  • 11. Intercept Constructor Android API:   Ljava/net/URL;-­‐><init>(Ljava/lang/String)V   Stub Method:   staAc  Ldroidbox/java/net/URL;-­‐>droidbox_cons(Ljava/ lang/String)Ljava/net/URL;   opcode: invoke-­‐direct(/range)   Does  it  always  work?  No!
  • 12. Intercept Constructor ExcepAon: v19 is uninitialized!
  • 13. Monitor Constructor We  can’t  intercept  constructors  by  replacing  them  with  the  stub   methods.     Just  insert  new  method  droidbox_cons  for  monitoring.
  • 14. Parameters Output •  Basic  Type   –  String.valueOf(int)   –  String.valueOf(long)   –  String.valueOf(double)   –  String.valueOf(fload)   –  String.valueOf(short)   –  String.valueOf(boolean)   –  String.valueOf(byte)   –  String.valueOf(char)
  • 15. Parameters Output •  Object  and  Array   –  Implement  droidbox.apimonitor.Helper.toString(Object)  
  • 16. Build API Database apkil.tests.APKIL;-­‐>openFileOutput:  NOT  ANDROID  API Inherited from: Landroid/content/ContextWrapper;-­‐>   openFileOutput(Ljava/lang/String;I)  
  • 17. Build API Database •  Build  API  Database  to  detect  methods   inherited  from  API   •  How  to  find  connecAons  of  classes  in  API   –  find  all  class  names:  jar  –f  android.jar   –  find  all  method  signatures  in  a  class:  javap  – bootclasspath  android.jar  –s  classname
  • 18. How to use APIMonitor usage:  apimonitor.py  [-­‐h]  [-­‐o,  -­‐-­‐output  dirpath]  [-­‐a,  -­‐-­‐api  apilist]  [-­‐v,  -­‐-­‐version]   filename     posiAonal  arguments:    filename                            path  of  APK  file   opAonal  arguments:    -­‐h,  -­‐-­‐help                        show  this  help  message  and  exit    -­‐o,  -­‐-­‐output  dirpath    output  directory    -­‐a,  -­‐-­‐api  apilist          config  file  of  API  list    -­‐v,  -­‐-­‐version                  show  program's  version  number  and  exit
  • 19. Specify APIs in Config File $./apimonitor.py  –a  config_file  –o  outdir  sample.apk •  API  configuraAon  file   –  One  method:  Method  signature  without  return  value   •  Landroid/content/Intent;-­‐><init>(Ljava/lang/String;)   –  All  methods  with  same  name:  Method  signature  without   parameters  and  return  value   •  Landroid/content/Intent;-­‐><init>   –  All  methods  of  the  same  Class:  Class  signature   •  Landroid/content/Intent;  
  • 20. View logs •  DDMS   •  $adb  logcat
  • 21. Demo logs •  APKILTests.apk   –  Developed  to  test  APIMonitor   –  Called  some  common  sensiAve  API  for  tesAng Get  IMEI/IMSI  &  MD5  hash
  • 22. Demo logs AES   Cipher File  IO Get  installed   applicaAon  list
  • 23. Demo logs Send  SMS  &  Phone  Call
  • 24. Real-­‐world  malware •  fishbot   –  It  was  found  in  China   –  Goal:  Find  C&C  server  URL  which  is  encrypted  in   bytecode   C&C  Server  address
  • 25. Future  works •  Collect  and  classify  sensiAve  Android  APIs  for   different  use  of  analysis   •  Move  APIMonitor  to  the  cloud(under   developing)   •  Do  deep  analysis  on  monitoring  logs  to  dig   more  informaAon   •  Modify  dalvik  to  support  dynamic   instrumentaAon    
  • 26. References •  [1]  TaintDroid:  RealAme  Privacy  Monitoring  on   Smartphones   •  [2]  I-­‐ARM-­‐Droid:A  RewriAng  Framework  for  In-­‐ App  Reference  Monitors  for  Android   ApplicaAons  
  • 27. Links •  Project  Page:  hkp://code.google.com/p/ droidbox   •  APIMonitor  Wiki:  hkp://code.google.com/p/ droidbox/wiki/APIMonitor   •  APIMonitor  repo:  hkp://github.com/kelwin/ apkil