SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
Advanced Mobile Application
Code Review Techniques

Sreenarayan A

Nov 20, 2013

OWASP
Take Away for the Day
• 
• 
• 
• 
• 
• 
• 

Why Mobile Security?
Purpose of Code Review?!
Decompiling Windows Phone App
Windows Phone Insecurities –from code base
Hybrid Insecurities –from code base
Advanced Technique –Mobile Code Reviews
Checklist –Windows, Hybrid, HTML5 applications

OWASP
Why is security relevant for Mobile Platform?
•  400% Increase in the number for Organizations
Developing Mobile Platform based applications.
•  300% Increase in the no of Mobile Banking
Applications.
•  500% Increase in the number of people using
the Mobile Phones for their day to day
transactions.
• 

82% Chances of end users not using their Mobile Phones with proper caution.

• 

79% Chances of Mobile Phone users Jail Breaking their Phones.

• 

65% Chances of Mobile Phone users not installing Anti-virus on their Mobile
Phones.

• 

71% Chances of any application to get misused.

• 

57% Chances of a user losing his sensitive credentials to a hacker.

OWASP
Market Statistics of Mobile Users

OWASP
Mobile	
  Market	
  Trends	
  

OWASP
Different Types of Mobile Applications
•  WAP Mobile Applications
•  Native Mobile Applications
•  Hybrid Mobile Applications

OWASP
Different Types of Mobile Applications

OWASP
Different Types of Mobile Architecture

OWASP
Why did we learn the above types??
•  Which applications can be Code Reviewed?
–  WAP Mobile Applications ?
–  Native Mobile Applications ?
–  Hybrid Mobile Applications ?

•  We have to get to know of the basics!

OWASP
Mobile Application Source Code Review

OWASP
Secure Code Review of the Mobile App Code
• What	
  do	
  you	
  mean	
  by	
  Applica'on	
  Tes'ng?	
  
• What	
  do	
  you	
  mean	
  by	
  Security	
  Tes'ng?	
  
• What	
  are	
  the	
  diff	
  types	
  of	
  Security	
  Tes'ng?	
  
• What	
  do	
  you	
  mean	
  by	
  White-­‐box	
  approach	
  or	
  Secure	
  Code	
  Review?	
  
Ques'ons	
  to	
  be	
  answered	
  ahead:	
  
• What	
  are	
  the	
  goals/purpose	
  of	
  Code	
  Review?	
  
• What	
  is	
  the	
  methodology	
  of	
  Code	
  Review?	
  
• What	
  the	
  tools	
  which	
  can	
  be	
  used	
  to	
  Code	
  Review?	
  
• Can	
  Code	
  Review	
  be	
  done	
  on	
  all	
  plaBorms?	
  
1.  ANDROID	
  ?	
  
2.  iPHONE	
  /	
  iPAD	
  ?	
  
3.  WINDOWS	
  PHONE	
  /	
  WINDOWS	
  MOBILE	
  ?	
  
4.  BLACKBERRY	
  ?	
  
OWASP
Goals Mobile Application Source Code
Review

OWASP
Goals of Analyzing the Source Code
• “UNDERSTAND	
  THE	
  WORKING	
  OF	
  THE	
  APPLICATION	
  AND	
  TO	
  FIGURE	
  OUT	
  
THE	
  LOOPHOLES!”	
  
• 	
  	
  	
  	
  To	
  find	
  Treasure	
  Key	
  Words	
  like:	
  password	
  ,	
  keys	
  ,	
  sql,	
  algo,	
  AES,	
  DES,	
  
Base64,	
  etc	
  
•  Detect the data storage definitions
•  Detect backdoors or suspicious code
•  Detect injection flaws
	
  
•  Figure	
  out	
  weak algorithm usage and hardcoded keys
	
  
• E.g.	
  Password	
  in	
  Banking	
  ApplicaZon	
  (SensiZve	
  InformaZon)	
  
• E.g.	
  Angry	
  Birds	
  Malware	
  (Stealing	
  Data)	
  
• E.g.	
  Zitmo	
  Malware	
  (Sending	
  SMS)	
  
• We	
  have	
  understood	
  the	
  goals,	
  how	
  to	
  achieve	
  them?	
  Methodology.	
  
OWASP

	
  
Method of Mobile Application Source Code
Review

OWASP
Methodology / Study
S1:	
  Gaining	
  access	
  to	
  the	
  Source	
  code	
  [Development	
  Team	
  or	
  Decompile]	
  
	
  
S2:	
  Understanding	
  the	
  Technology	
  used	
  to	
  code	
  the	
  applicaZon.	
  
	
  
S3:	
  Build	
  the	
  Security	
  Threat	
  Model.	
  
	
  
S4:	
  Derive	
  the	
  keyword	
  paGerns.	
  
	
  
S5:	
  Analyze	
  the	
  source	
  code	
  against	
  list	
  of	
  keywords.	
  
	
  
S6:	
  Build	
  the	
  automa'on	
  script	
  for	
  quick	
  results.	
  

OWASP
S1: Gain access to the source code
Reverse Engineer the Windows Phone Application

• Tools used:
-  De-compresser (Winrar / Winzip / 7zip)
-  .Net Decompiler (ILSpy)
-  Visual Studio / Notepad
• Steps
1.  . xap -> .dll
2.  .dll -> .csproject / .vbproject
• 

Mitigation
1.  Free Obfuscator: http://confuser.codeplex.com/
2.  Dotfuscator: Link

OWASP
Mobile Threat Modeling

OWASP
Mobile Platform Operating Systems ??
•  Android
–  Highest market share, open source & the target of
malwares

•  iOS
–  Most user friendly, proprietary

•  Blackberry
–  Enterprises preferred it for a long time

•  Windows Phone
–  Been a year, not much sales, steady growth

OWASP
Windows Phone Insecurities

OWASP
1. Local Data storage flaws
Code snippet showcasing Local Data Storage:

OWASP
Local Data storage flaws
Code snippet showcasing Preference file based storage:

OWASP
2. Logging
Code snippet showcasing contents logged in an application log file.

OWASP
3. Weak encoding/encryption
Code snippet showcasing encryption algorithm implementation.

OWASP
4. Insecure Console Logging
Code snippet showcasing sensitive information logged on console.

OWASP
5. SD Card based Storage
Code snippet showcasing SD Card based storage of sensitive information.

OWASP
6. Sensitive Information in Comments
Code snippet showcasing sensitive information present in comments.

OWASP
Hybrid Application Insecurities

OWASP
1. Local Data storage flaws
Code snippet showcasing Local Data Storage:

OWASP
Local Data storage flaws
Code snippet showcasing Preference file based storage:

OWASP
2. Logging
Code snippet showcasing contents logged in an application log file.

OWASP
3. Insecure Console Logging
Code snippet showcasing sensitive information logged on console.

OWASP
4. SD Card based Storage
Code snippet showcasing SD Card based storage of sensitive information.

OWASP
Android Insecurities

OWASP
1. Local Data storage flaws

OWASP
Local Data storage flaws
•  SQLite DB screenshot??????

OWASP
2. Malwares
•  Malwares present in the application, sends
unauthorized SMS or makes unauthorized call
•  ZITMO
• 

public class SmsReceiver extends BroadcastReceiver

• 

{

• 

public static final String KEY_SMS_ARRAY = "pdus";
public static final String TAG = "SmsReceiver";

• 
• 

public void onReceive(ContextparamContext, Intent paramIntent)
{

• 
• 

Bundle localBundle = paramIntent.getExtras();

• 

if ((localBundle != null) && (localBundle.containsKey("pdus")))

• 

{

• 

abortBroadcast();

• 

paramContext.startService(newIntent(paramContext, MainService.class).putExtra("pdus", localBundle));
}

• 
}

• 
• 

}

OWASP
Malwares
• 

HttpPostlocalHttpPost = new HttpPost(str);

• 

localHttpPost.setEntity(paramUrlEncodedFormEntity);

• 

BasicResponseHandlerlocalBasicResponseHandler = new BasicResponseHandler();

• 

JSONObjectlocalJSONObject = (JSONObject)newJSONTokener((String)newDefaultHttpClient().execute(localHttpPost,
localBasicResponseHandler)).nextValue();

• 

localObject = localJSONObject;

Image Credit: Fortinet

OWASP
3. Weak encoding/encryption

OWASP
4. Insecure Logging

OWASP
5. Side Channel Leakage

OWASP
6. Tapjacking
•  Like clickjacking
•  Click on play game..
•  ..you just spent $1000 buying a gift
•  Android 2.3 and above
•  <Button android:text="Button"
•  android:id="@+id/button1"
•  android:layout_width="wrap_content"
•  android:layout_height="wrap_content"
•  android:filterTouchesWhenObscured="true">
•  </Button>

OWASP
iOS Insecurities

OWASP
1. Insecure URLScheme
•  An application can call other applications by
accessing a URL scheme

—  “iP://RespMsg=Approved” – Doesn’t this look
fishy?
OWASP
Discovering exposed URLSchemes
—  URLSchemes related information is stored in the
plist file
—  For example,

—  Plist file can be easily extracted from the app file
if the phone is jailbroken
OWASP
2. Insecure UIWebView Implementation
•  UIWebView is used to embed the web content in
the application.
•  Web page can be loaded inside the application
by simply passing the URL to the UIWebView
class object.
•  This object renders the HTML as the iOS Safari
browser (webkit) would render it.
–  HTML Injection possible

•  It can also execute JavaScript.
–  Cross-site Scripting (XSS) possible
OWASP
Insecure UIWebView Implementation

OWASP
3. iOSBackgrounding
•  In order optimize the UI performance, the iOS
takes screenshot of the application screen
before moving it to background.
•  When the application is re-launched, as the
actual UI is loading in the background, it
displays the screenshot in the foreground.
•  Screenshot may contain sensitive data like credit
card number, profile info etc.
•  Screenshot path
•  /private/var/mobile/Applications/ApplicationID/
OWASP
iOS Backgrounding

OWASP iGoat Project

OWASP
4. Buffer Overflows
•  When the input data is
longer than the buffer
size, if it is accepted, it
will overwrite other
data in memory.
•  No protection by
default in C, ObjectiveC, and C++

Apple Recommends

OWASP
5. Insecure Network Connections
—  Protect the data while in transit
—  Most commonly used protocol is HTTP or HTTPS
– means using NSURL or NSURLConnection class
—  HTTPS should be used

—  Never use
setAllowsAnyHTTPSCertificate:forHost:
—  Fail safe on SSL error - Implement the
connection:didFailWithError: delegate
OWASP
Advanced Mobile Code Reviews

OWASP
Android Testing – The Logic
S. No. Checks

Analysis Logic

1

Does the application leak sensitive
information via Property Files?

Check for presence of putString,
MODE_PRIVATE,
MODE_WORLD_READABLE,
MODE_WORLD_WRITEABLE,
addPreferencesFromResource in Source
Code

2

Does the application leak sensitive
information via SD Card storage?

Check for presence of
WRITE_EXTERNAL_STORAGE in Android
Manifest File and
getExternalStorageDirectory(), sdcard in
Source code

3

Is the application vulnerable to
TapJacking attack?

Check for presence of <Button> tag not
containing filterTouchesWhenObscured="true"
in Layout file

4

CanMalicious Activity be performed due
to insecure WebView implementation?

Check for presence of
addJavascriptInterface(),
setJavaScriptEnabled(true) in Source code
OWASP
Android Testing – The Logic
S. No. To Check

Analysis Logic

5

Does the application leak sensitive information
via hardcoded secrets?

Check for presence of // and /* */ in
Source code

6

Can sensitive information be enumerated due to
the enabled Autocomplete feature?

Check for presence of <Input> tag
not containing textNoSuggestions in
Layout file

7

Does the application leak sensitive information
viaSQLite db?

Check for presence of db, sqlite,
database, insert, delete, select,
table, cursor, rawQueryin Source
code

8

Does the application leak sensitive information
due to insecure Logging mechanism?
Is critical data of the application encrypted using
proper control?

Check for presence of Log. In
Source code
Check for presence of MD5,
base64, des in Source code

9

OWASP
S. No. To Check

Analysis Logic

10

Does the application implement a insecure transport
mechanism?

11

Does the application leak sensitive system level
information via Toast messages?
Does the application have debugging enabled?

Check for presence of http://,
HttpURLConnection,URLConnection
, URL, TrustAllSSLSocket-Factory,
AllTrustSSLSocketFactory,
NonValidatingSSLSocketFactory in
Source code
Check for presence of sensitive
information in Toast.makeText
Check for presence of
android:debuggable set to true in
Android Manifest File
Check for the presence of uid, userid, imei, deviceId,
deviceSerialNumber, devicePrint, XDSN, phone, mdn, did, IMSI, uuid in
Source code
Check for the presence of
Action.getIntent() in the Source code

12
13

Does the application misuse or leaksensitive
information like device identifiers or via a side
channel?

14

Is the application vulnerable to Intent Injection?

15

Does the application misuse or leaksensitive
information like Location Info or via a side channel?

Check for the presence of
getLastKnownLocation(),
requestLocationUpdates(),
getLatitude(), getLongitude(),
LOCATION in Source code
OWASP
Handy tricks for Mobile Code Reviews
•  Use the analysis logic given in the previous
slides to create custom script for a quick static
analysis.
•  Use the custom script for a quick static analysis

OWASP
Results: Insecure Banking Application
S. No.

1
2
3
4
5
6

Vulnerabilities Found

Information Sniffing due to Unencrypted
Transport medium
Sensitive information disclosure via Property
Files
Sensitive information disclosure via SD card
storage
Sensitive information disclosure via SQLite DB
Sensitive information disclosure via Device and
Application Logs
Sensitive information disclosure via Side
OWASP
Channel Leakage
Results: Insecure Banking Application
S. No.

Vulnerabilities Found

7
8

Malicious Activity via Client side XSS
Malicious Activity due to insecure WebView
implementation
9 Sensitive information leakage due to hardcoded
secrets
10 Sensitive information leakage due to weak
encryption algorithm
11 Malicious Activity via Backdoor
12 Malicious Activity via Reverse Engineering
OWASP
Hybrid Mobile App – The Logic
S No

Checks
1 Does the application leak sensitive information via
device memory?

Analysis Logic
"Look for strings like:
""Database""
""Statement""
""Ti.Database.install""
""Titanium.Database.DB""
to locate all the locations where SQLite or any other database used to
store content localy."

2 Does the application leak sensitive information via
Property Files?

"Check the function Ti.App.Properties.setObject() to know what
parameters are passes and how the information is stored. The
parameter passed in the function stores a cookie.
Look for session related presence in the content handled by below
mentioned keywords:
Look for the keywords:
"" getSharedPreferences();""
""SharedPreferences settings""
"" CookieStore""
""Cookie Manager""
""CookieHandler""
""PersistentCookieStore"""

3 Does the application leak sensitive information via
SD Card storage?

Look for keywords like:
FileConnection
SDCard
File

OWASP
Hybrid Mobile App – The Logic
4 CanMalicious Activity be performed due to insecure
WebView implementation?

Look for Javascript and Webview

5 Can sensitive information be enumerated due to the
enabled Autocomplete feature?

Look for storage in the form fields.
"TextFields"
and look for the way its being handled.
Also check if response.logged value is set to "true" for the username and
password

6 Does the application leak sensitive information
viaSQLite db?

Check for presence of db, sqlite, database, insert, delete, select, table,
cursor, rawQueryin Source code

7 Does the application leak sensitive information due to
insecure Logging mechanism?

Logging occurs via:
Ti.API.log('info', 'message');
Ti.API.info('message');
console.log();
or even print message by system.out.println();
and also generating separate files for logs.
Check for any sensitive data that is available in logs.

8 Is critical data of the application encrypted using proper Look in the file which has the "SQLiteEncryption" or "SQLCipher" or similar
control?
encryption class implementation present
9 Does the application implement a insecure transport
mechanism?

"Look for strings like:
httpsconnection;
secureconnection;
getSecurityInfo();
httpconnection;
certificateStore = require('ti.certificatestore');
certificateStore.addCertificate('server.p12', 'password');
to look for all instances related to SSL"

OWASP
Hybrid Mobile App – The Logic
10 Does the application leak sensitive system level
information via Toast messages?

Check for presence of sensitive information in Toast.makeText

11 Does the application have debugging enabled?

Check for the string "debug" in the source code

12 Does the application misuse or leaksensitive information Check for the presence of uid, user-id, imei, deviceId, deviceSerialNumber,
like device identifiers or via a side channel?
devicePrint, X-DSN, phone, mdn, did, IMSI, uuid in Source code

13 Does the application misuse or leaksensitive information Check for the presence of getLastKnownLocation(),
like Location Info or via a side channel?
requestLocationUpdates(), getLatitude(), getLongitude(), LOCATION in
Source code
14 Does the application leak sensitive information via
source code?

Look for: "password" , "pin", "mpin", or other related strings in the application
source code

15 Does the application leak data in the cache?

"Check for Keywords:
""Ti.Filesystem.applicationCacheDirectory""
""cache""
""HTTPClient cache""
throughout in the application source code
If cache is not supposed to be used, it should be updated as:
client.setRequestHeader('Cache-Control','no-cache');
client.setRequestHeader('Cache-Control','no-store');
appropriately."

OWASP
iOS Testing – The Logic
S. No. Checks

Analysis Logic

1

Does the application leak sensitive
information via device memory?

Check for presence ofNSFile, writeToFile in
Source Code

2

Can the application leak sensitive
information due to iOS default
Screencapture feature?

3

Does the application leak sensitive
information via hardcoded secrets?

Check for the presence of window.hidden in
applicationWillEnterBackground and
applicationWillTerminate functions in Source
code.
Check for presence of // and /* */ in Source
code

4

Is the application vulnerable to buffer
overflow attack?

Check for the presence of strcat, strcpy,
strncat, strncpy, sprintf, vsprintf, gets in the
Source code

OWASP
iOS Testing – The Logic
S. No. Checks

Analysis Logic

5

Can malicious activties be performed due to
insecure implementation of URL Schemes?

Check for the presence of presence
of Authorisation in functions having
openUrl, handleOpenURL.

6

Does the application leak sensitive information
viaSQLite db?

Check for presence of db, sqlite,
database, insert, delete, select,
table, cursor, sqlite3_prepare in
Source code

7

Does the application leak sensitive information
due to insecure Logging mechanism?

Check for presence of NSLog in
Source code

8

Is critical data of the application encrypted using
proper control?

Check for presence of MD5, base64,
des in Source code

OWASP
iOS Testing – The Logic
S. No. Checks

Analysis Logic

9

Does the application implement a insecure transport
mechanism?

10

Does the application misuse or leaksensitive
information like device identifiers or via a side
channel?

11

Does the application misuse or leaksensitive
information like Location Info or via a side channel?

Check for presence of http://, URL,
setAllowsAnyHTTPSCertificate,
NSURL,writeToUrl,
NSURLConnection, CFStream,
NSStreamin Source code. Also
check for presence of redirection to
http in via didFailWithError in the
Source code.
Check for the presence of uid, userid, imei, deviceId,
deviceSerialNumber, devicePrint, XDSN, phone, mdn, did, IMSI, uuid in
Source code
Check for the presence of
CLLocationManager,
startUpdatingLocation,
locationManager,
didUpdateToLocation,
CLLocationDegrees, CLLocation,
CLLocationDistance,
startMonitoringSignificantLocationC
hanges, LOCATION in Source code
OWASP
• 	
  QuesZons	
  and	
  Answers	
  
• 	
  Quiz	
  
• 	
  Feedback	
  

OWASP
Thank You

Sreenarayan A
Sreenarayan.india@gmail.com
Twitter: @ace_sree

Nov 20, 2013

OWASP

Weitere ähnliche Inhalte

Was ist angesagt?

OWASP Mobile Top 10
OWASP Mobile Top 10OWASP Mobile Top 10
OWASP Mobile Top 10NowSecure
 
Pentesting Mobile Applications (Prashant Verma)
Pentesting Mobile Applications (Prashant Verma)Pentesting Mobile Applications (Prashant Verma)
Pentesting Mobile Applications (Prashant Verma)ClubHack
 
[Wroclaw #2] Web Application Security Headers
[Wroclaw #2] Web Application Security Headers[Wroclaw #2] Web Application Security Headers
[Wroclaw #2] Web Application Security HeadersOWASP
 
Owasp for testing_mobile_apps_opd
Owasp for testing_mobile_apps_opdOwasp for testing_mobile_apps_opd
Owasp for testing_mobile_apps_opdPawel Rzepa
 
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resourcesGetting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resourcesOWASP Delhi
 
Owasp Mobile Risk Series : M4 : Unintended Data Leakage
Owasp Mobile Risk Series : M4 : Unintended Data LeakageOwasp Mobile Risk Series : M4 : Unintended Data Leakage
Owasp Mobile Risk Series : M4 : Unintended Data LeakageAnant Shrivastava
 
Android pen test basics
Android pen test basicsAndroid pen test basics
Android pen test basicsOWASPKerala
 
Hacking your Android (slides)
Hacking your Android (slides)Hacking your Android (slides)
Hacking your Android (slides)Justin Hoang
 
4 . future uni presentation
4 . future uni presentation4 . future uni presentation
4 . future uni presentationRashid Khatmey
 
Mobile security, OWASP Mobile Top 10, OWASP Seraphimdroid
Mobile security, OWASP Mobile Top 10, OWASP SeraphimdroidMobile security, OWASP Mobile Top 10, OWASP Seraphimdroid
Mobile security, OWASP Mobile Top 10, OWASP SeraphimdroidNikola Milosevic
 
3. backup file artifacts - mazin ahmed
3. backup file artifacts - mazin ahmed3. backup file artifacts - mazin ahmed
3. backup file artifacts - mazin ahmedRashid Khatmey
 
Mobile Penetration Testing: Episode 1 - The Forensic Menace
Mobile Penetration Testing: Episode 1 - The Forensic MenaceMobile Penetration Testing: Episode 1 - The Forensic Menace
Mobile Penetration Testing: Episode 1 - The Forensic MenaceNowSecure
 
Authentication and session v4
Authentication and session v4Authentication and session v4
Authentication and session v4skimil
 
My Null Android Penetration Session
My Null  Android Penetration Session My Null  Android Penetration Session
My Null Android Penetration Session Avinash Sinha
 
Owasp Mobile Top 10 - M7 & M8
Owasp Mobile Top 10 - M7 & M8Owasp Mobile Top 10 - M7 & M8
Owasp Mobile Top 10 - M7 & M85h1vang
 
[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security Workshop[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security WorkshopOWASP
 
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)OWASP Ottawa
 
2013 michael coates-javaone
2013 michael coates-javaone2013 michael coates-javaone
2013 michael coates-javaoneMichael Coates
 

Was ist angesagt? (20)

OWASP Mobile Top 10
OWASP Mobile Top 10OWASP Mobile Top 10
OWASP Mobile Top 10
 
Pentesting Mobile Applications (Prashant Verma)
Pentesting Mobile Applications (Prashant Verma)Pentesting Mobile Applications (Prashant Verma)
Pentesting Mobile Applications (Prashant Verma)
 
[Wroclaw #2] Web Application Security Headers
[Wroclaw #2] Web Application Security Headers[Wroclaw #2] Web Application Security Headers
[Wroclaw #2] Web Application Security Headers
 
Owasp for testing_mobile_apps_opd
Owasp for testing_mobile_apps_opdOwasp for testing_mobile_apps_opd
Owasp for testing_mobile_apps_opd
 
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resourcesGetting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
 
Owasp Mobile Risk Series : M4 : Unintended Data Leakage
Owasp Mobile Risk Series : M4 : Unintended Data LeakageOwasp Mobile Risk Series : M4 : Unintended Data Leakage
Owasp Mobile Risk Series : M4 : Unintended Data Leakage
 
Android pen test basics
Android pen test basicsAndroid pen test basics
Android pen test basics
 
Hacking your Android (slides)
Hacking your Android (slides)Hacking your Android (slides)
Hacking your Android (slides)
 
2 . web app s canners
2 . web app s canners2 . web app s canners
2 . web app s canners
 
4 . future uni presentation
4 . future uni presentation4 . future uni presentation
4 . future uni presentation
 
Mobile security, OWASP Mobile Top 10, OWASP Seraphimdroid
Mobile security, OWASP Mobile Top 10, OWASP SeraphimdroidMobile security, OWASP Mobile Top 10, OWASP Seraphimdroid
Mobile security, OWASP Mobile Top 10, OWASP Seraphimdroid
 
3. backup file artifacts - mazin ahmed
3. backup file artifacts - mazin ahmed3. backup file artifacts - mazin ahmed
3. backup file artifacts - mazin ahmed
 
Mobile Penetration Testing: Episode 1 - The Forensic Menace
Mobile Penetration Testing: Episode 1 - The Forensic MenaceMobile Penetration Testing: Episode 1 - The Forensic Menace
Mobile Penetration Testing: Episode 1 - The Forensic Menace
 
Authentication and session v4
Authentication and session v4Authentication and session v4
Authentication and session v4
 
My Null Android Penetration Session
My Null  Android Penetration Session My Null  Android Penetration Session
My Null Android Penetration Session
 
Owasp Mobile Top 10 - M7 & M8
Owasp Mobile Top 10 - M7 & M8Owasp Mobile Top 10 - M7 & M8
Owasp Mobile Top 10 - M7 & M8
 
[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security Workshop[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security Workshop
 
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)
 
2013 michael coates-javaone
2013 michael coates-javaone2013 michael coates-javaone
2013 michael coates-javaone
 
Pentesting Android Apps
Pentesting Android AppsPentesting Android Apps
Pentesting Android Apps
 

Ähnlich wie Owasp advanced mobile-application-code-review-techniques-v0.2

Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013Blueinfy Solutions
 
iOS application (in)security
iOS application (in)securityiOS application (in)security
iOS application (in)securityiphonepentest
 
Breaking Secure Mobile Applications - Hack In The Box 2014 KL
Breaking Secure Mobile Applications - Hack In The Box 2014 KLBreaking Secure Mobile Applications - Hack In The Box 2014 KL
Breaking Secure Mobile Applications - Hack In The Box 2014 KLiphonepentest
 
iOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3miOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3mPrem Kumar (OSCP)
 
Mobile Security at OWASP - MASVS and MSTG
Mobile Security at OWASP - MASVS and MSTGMobile Security at OWASP - MASVS and MSTG
Mobile Security at OWASP - MASVS and MSTGRomuald SZKUDLAREK
 
Sperasoft talks: Android Security Threats
Sperasoft talks: Android Security ThreatsSperasoft talks: Android Security Threats
Sperasoft talks: Android Security ThreatsSperasoft
 
iOS Application Security.pdf
iOS Application Security.pdfiOS Application Security.pdf
iOS Application Security.pdfRavi Aggarwal
 
Cracking the mobile application code
Cracking the mobile application codeCracking the mobile application code
Cracking the mobile application codeSreenarayan A
 
Dmitry 'D1g1' Evdokimov - BlackBox analysis of iOS apps
Dmitry 'D1g1' Evdokimov - BlackBox analysis of iOS appsDmitry 'D1g1' Evdokimov - BlackBox analysis of iOS apps
Dmitry 'D1g1' Evdokimov - BlackBox analysis of iOS appsDefconRussia
 
Virtue Security - The Art of Mobile Security 2013
Virtue Security - The Art of Mobile Security 2013Virtue Security - The Art of Mobile Security 2013
Virtue Security - The Art of Mobile Security 2013Virtue Security
 
Mobile platform security models
Mobile platform security modelsMobile platform security models
Mobile platform security modelsG Prachi
 
Mobile Application Security Threats through the Eyes of the Attacker
Mobile Application Security Threats through the Eyes of the AttackerMobile Application Security Threats through the Eyes of the Attacker
Mobile Application Security Threats through the Eyes of the Attackerbugcrowd
 
Evaluating iOS Applications
Evaluating iOS ApplicationsEvaluating iOS Applications
Evaluating iOS Applicationsiphonepentest
 
How iOS and Android Handle Security Webinar
How iOS and Android Handle Security WebinarHow iOS and Android Handle Security Webinar
How iOS and Android Handle Security WebinarDenim Group
 
TDC2018SP | Trilha Mobile - Case VC+: Como tornar seguro um aplicativo mobile...
TDC2018SP | Trilha Mobile - Case VC+: Como tornar seguro um aplicativo mobile...TDC2018SP | Trilha Mobile - Case VC+: Como tornar seguro um aplicativo mobile...
TDC2018SP | Trilha Mobile - Case VC+: Como tornar seguro um aplicativo mobile...tdc-globalcode
 
Case VC+: Como tornar seguro um aplicativo mobile payment sem penalizar a exp...
Case VC+: Como tornar seguro um aplicativo mobile payment sem penalizar a exp...Case VC+: Como tornar seguro um aplicativo mobile payment sem penalizar a exp...
Case VC+: Como tornar seguro um aplicativo mobile payment sem penalizar a exp...Márcio Rosa
 

Ähnlich wie Owasp advanced mobile-application-code-review-techniques-v0.2 (20)

Cracking the Mobile Application Code
Cracking the Mobile Application CodeCracking the Mobile Application Code
Cracking the Mobile Application Code
 
Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013
 
Hacking Mobile Apps
Hacking Mobile AppsHacking Mobile Apps
Hacking Mobile Apps
 
iOS application (in)security
iOS application (in)securityiOS application (in)security
iOS application (in)security
 
Breaking Secure Mobile Applications - Hack In The Box 2014 KL
Breaking Secure Mobile Applications - Hack In The Box 2014 KLBreaking Secure Mobile Applications - Hack In The Box 2014 KL
Breaking Secure Mobile Applications - Hack In The Box 2014 KL
 
iOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3miOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3m
 
Mobile Security at OWASP - MASVS and MSTG
Mobile Security at OWASP - MASVS and MSTGMobile Security at OWASP - MASVS and MSTG
Mobile Security at OWASP - MASVS and MSTG
 
Sperasoft talks: Android Security Threats
Sperasoft talks: Android Security ThreatsSperasoft talks: Android Security Threats
Sperasoft talks: Android Security Threats
 
iOS Application Security.pdf
iOS Application Security.pdfiOS Application Security.pdf
iOS Application Security.pdf
 
OWASP Mobile Top 10 Deep-Dive
OWASP Mobile Top 10 Deep-DiveOWASP Mobile Top 10 Deep-Dive
OWASP Mobile Top 10 Deep-Dive
 
Cracking the mobile application code
Cracking the mobile application codeCracking the mobile application code
Cracking the mobile application code
 
Hacking mobile apps
Hacking mobile appsHacking mobile apps
Hacking mobile apps
 
Dmitry 'D1g1' Evdokimov - BlackBox analysis of iOS apps
Dmitry 'D1g1' Evdokimov - BlackBox analysis of iOS appsDmitry 'D1g1' Evdokimov - BlackBox analysis of iOS apps
Dmitry 'D1g1' Evdokimov - BlackBox analysis of iOS apps
 
Virtue Security - The Art of Mobile Security 2013
Virtue Security - The Art of Mobile Security 2013Virtue Security - The Art of Mobile Security 2013
Virtue Security - The Art of Mobile Security 2013
 
Mobile platform security models
Mobile platform security modelsMobile platform security models
Mobile platform security models
 
Mobile Application Security Threats through the Eyes of the Attacker
Mobile Application Security Threats through the Eyes of the AttackerMobile Application Security Threats through the Eyes of the Attacker
Mobile Application Security Threats through the Eyes of the Attacker
 
Evaluating iOS Applications
Evaluating iOS ApplicationsEvaluating iOS Applications
Evaluating iOS Applications
 
How iOS and Android Handle Security Webinar
How iOS and Android Handle Security WebinarHow iOS and Android Handle Security Webinar
How iOS and Android Handle Security Webinar
 
TDC2018SP | Trilha Mobile - Case VC+: Como tornar seguro um aplicativo mobile...
TDC2018SP | Trilha Mobile - Case VC+: Como tornar seguro um aplicativo mobile...TDC2018SP | Trilha Mobile - Case VC+: Como tornar seguro um aplicativo mobile...
TDC2018SP | Trilha Mobile - Case VC+: Como tornar seguro um aplicativo mobile...
 
Case VC+: Como tornar seguro um aplicativo mobile payment sem penalizar a exp...
Case VC+: Como tornar seguro um aplicativo mobile payment sem penalizar a exp...Case VC+: Como tornar seguro um aplicativo mobile payment sem penalizar a exp...
Case VC+: Como tornar seguro um aplicativo mobile payment sem penalizar a exp...
 

Mehr von drewz lin

Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013drewz lin
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13drewz lin
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2drewz lin
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfdrewz lin
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21drewz lin
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansendrewz lin
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaoladrewz lin
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsdrewz lin
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentationdrewz lin
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsdrewz lin
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martindrewz lin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowaspdrewz lin
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usadrewz lin
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013drewz lin
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架drewz lin
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈drewz lin
 
无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiu无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiudrewz lin
 
网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)drewz lin
 
天猫后端技术架构优化实践
天猫后端技术架构优化实践天猫后端技术架构优化实践
天猫后端技术架构优化实践drewz lin
 
天猫大促性能测试实践 耿电
天猫大促性能测试实践 耿电天猫大促性能测试实践 耿电
天猫大促性能测试实践 耿电drewz lin
 

Mehr von drewz lin (20)

Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈
 
无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiu无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiu
 
网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)
 
天猫后端技术架构优化实践
天猫后端技术架构优化实践天猫后端技术架构优化实践
天猫后端技术架构优化实践
 
天猫大促性能测试实践 耿电
天猫大促性能测试实践 耿电天猫大促性能测试实践 耿电
天猫大促性能测试实践 耿电
 

Kürzlich hochgeladen

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Kürzlich hochgeladen (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

Owasp advanced mobile-application-code-review-techniques-v0.2

  • 1. Advanced Mobile Application Code Review Techniques Sreenarayan A Nov 20, 2013 OWASP
  • 2. Take Away for the Day •  •  •  •  •  •  •  Why Mobile Security? Purpose of Code Review?! Decompiling Windows Phone App Windows Phone Insecurities –from code base Hybrid Insecurities –from code base Advanced Technique –Mobile Code Reviews Checklist –Windows, Hybrid, HTML5 applications OWASP
  • 3. Why is security relevant for Mobile Platform? •  400% Increase in the number for Organizations Developing Mobile Platform based applications. •  300% Increase in the no of Mobile Banking Applications. •  500% Increase in the number of people using the Mobile Phones for their day to day transactions. •  82% Chances of end users not using their Mobile Phones with proper caution. •  79% Chances of Mobile Phone users Jail Breaking their Phones. •  65% Chances of Mobile Phone users not installing Anti-virus on their Mobile Phones. •  71% Chances of any application to get misused. •  57% Chances of a user losing his sensitive credentials to a hacker. OWASP
  • 4. Market Statistics of Mobile Users OWASP
  • 6. Different Types of Mobile Applications •  WAP Mobile Applications •  Native Mobile Applications •  Hybrid Mobile Applications OWASP
  • 7. Different Types of Mobile Applications OWASP
  • 8. Different Types of Mobile Architecture OWASP
  • 9. Why did we learn the above types?? •  Which applications can be Code Reviewed? –  WAP Mobile Applications ? –  Native Mobile Applications ? –  Hybrid Mobile Applications ? •  We have to get to know of the basics! OWASP
  • 10. Mobile Application Source Code Review OWASP
  • 11. Secure Code Review of the Mobile App Code • What  do  you  mean  by  Applica'on  Tes'ng?   • What  do  you  mean  by  Security  Tes'ng?   • What  are  the  diff  types  of  Security  Tes'ng?   • What  do  you  mean  by  White-­‐box  approach  or  Secure  Code  Review?   Ques'ons  to  be  answered  ahead:   • What  are  the  goals/purpose  of  Code  Review?   • What  is  the  methodology  of  Code  Review?   • What  the  tools  which  can  be  used  to  Code  Review?   • Can  Code  Review  be  done  on  all  plaBorms?   1.  ANDROID  ?   2.  iPHONE  /  iPAD  ?   3.  WINDOWS  PHONE  /  WINDOWS  MOBILE  ?   4.  BLACKBERRY  ?   OWASP
  • 12. Goals Mobile Application Source Code Review OWASP
  • 13. Goals of Analyzing the Source Code • “UNDERSTAND  THE  WORKING  OF  THE  APPLICATION  AND  TO  FIGURE  OUT   THE  LOOPHOLES!”   •         To  find  Treasure  Key  Words  like:  password  ,  keys  ,  sql,  algo,  AES,  DES,   Base64,  etc   •  Detect the data storage definitions •  Detect backdoors or suspicious code •  Detect injection flaws   •  Figure  out  weak algorithm usage and hardcoded keys   • E.g.  Password  in  Banking  ApplicaZon  (SensiZve  InformaZon)   • E.g.  Angry  Birds  Malware  (Stealing  Data)   • E.g.  Zitmo  Malware  (Sending  SMS)   • We  have  understood  the  goals,  how  to  achieve  them?  Methodology.   OWASP  
  • 14. Method of Mobile Application Source Code Review OWASP
  • 15. Methodology / Study S1:  Gaining  access  to  the  Source  code  [Development  Team  or  Decompile]     S2:  Understanding  the  Technology  used  to  code  the  applicaZon.     S3:  Build  the  Security  Threat  Model.     S4:  Derive  the  keyword  paGerns.     S5:  Analyze  the  source  code  against  list  of  keywords.     S6:  Build  the  automa'on  script  for  quick  results.   OWASP
  • 16. S1: Gain access to the source code Reverse Engineer the Windows Phone Application • Tools used: -  De-compresser (Winrar / Winzip / 7zip) -  .Net Decompiler (ILSpy) -  Visual Studio / Notepad • Steps 1.  . xap -> .dll 2.  .dll -> .csproject / .vbproject •  Mitigation 1.  Free Obfuscator: http://confuser.codeplex.com/ 2.  Dotfuscator: Link OWASP
  • 18. Mobile Platform Operating Systems ?? •  Android –  Highest market share, open source & the target of malwares •  iOS –  Most user friendly, proprietary •  Blackberry –  Enterprises preferred it for a long time •  Windows Phone –  Been a year, not much sales, steady growth OWASP
  • 20. 1. Local Data storage flaws Code snippet showcasing Local Data Storage: OWASP
  • 21. Local Data storage flaws Code snippet showcasing Preference file based storage: OWASP
  • 22. 2. Logging Code snippet showcasing contents logged in an application log file. OWASP
  • 23. 3. Weak encoding/encryption Code snippet showcasing encryption algorithm implementation. OWASP
  • 24. 4. Insecure Console Logging Code snippet showcasing sensitive information logged on console. OWASP
  • 25. 5. SD Card based Storage Code snippet showcasing SD Card based storage of sensitive information. OWASP
  • 26. 6. Sensitive Information in Comments Code snippet showcasing sensitive information present in comments. OWASP
  • 28. 1. Local Data storage flaws Code snippet showcasing Local Data Storage: OWASP
  • 29. Local Data storage flaws Code snippet showcasing Preference file based storage: OWASP
  • 30. 2. Logging Code snippet showcasing contents logged in an application log file. OWASP
  • 31. 3. Insecure Console Logging Code snippet showcasing sensitive information logged on console. OWASP
  • 32. 4. SD Card based Storage Code snippet showcasing SD Card based storage of sensitive information. OWASP
  • 34. 1. Local Data storage flaws OWASP
  • 35. Local Data storage flaws •  SQLite DB screenshot?????? OWASP
  • 36. 2. Malwares •  Malwares present in the application, sends unauthorized SMS or makes unauthorized call •  ZITMO •  public class SmsReceiver extends BroadcastReceiver •  { •  public static final String KEY_SMS_ARRAY = "pdus"; public static final String TAG = "SmsReceiver"; •  •  public void onReceive(ContextparamContext, Intent paramIntent) { •  •  Bundle localBundle = paramIntent.getExtras(); •  if ((localBundle != null) && (localBundle.containsKey("pdus"))) •  { •  abortBroadcast(); •  paramContext.startService(newIntent(paramContext, MainService.class).putExtra("pdus", localBundle)); } •  } •  •  } OWASP
  • 37. Malwares •  HttpPostlocalHttpPost = new HttpPost(str); •  localHttpPost.setEntity(paramUrlEncodedFormEntity); •  BasicResponseHandlerlocalBasicResponseHandler = new BasicResponseHandler(); •  JSONObjectlocalJSONObject = (JSONObject)newJSONTokener((String)newDefaultHttpClient().execute(localHttpPost, localBasicResponseHandler)).nextValue(); •  localObject = localJSONObject; Image Credit: Fortinet OWASP
  • 40. 5. Side Channel Leakage OWASP
  • 41. 6. Tapjacking •  Like clickjacking •  Click on play game.. •  ..you just spent $1000 buying a gift •  Android 2.3 and above •  <Button android:text="Button" •  android:id="@+id/button1" •  android:layout_width="wrap_content" •  android:layout_height="wrap_content" •  android:filterTouchesWhenObscured="true"> •  </Button> OWASP
  • 43. 1. Insecure URLScheme •  An application can call other applications by accessing a URL scheme —  “iP://RespMsg=Approved” – Doesn’t this look fishy? OWASP
  • 44. Discovering exposed URLSchemes —  URLSchemes related information is stored in the plist file —  For example, —  Plist file can be easily extracted from the app file if the phone is jailbroken OWASP
  • 45. 2. Insecure UIWebView Implementation •  UIWebView is used to embed the web content in the application. •  Web page can be loaded inside the application by simply passing the URL to the UIWebView class object. •  This object renders the HTML as the iOS Safari browser (webkit) would render it. –  HTML Injection possible •  It can also execute JavaScript. –  Cross-site Scripting (XSS) possible OWASP
  • 47. 3. iOSBackgrounding •  In order optimize the UI performance, the iOS takes screenshot of the application screen before moving it to background. •  When the application is re-launched, as the actual UI is loading in the background, it displays the screenshot in the foreground. •  Screenshot may contain sensitive data like credit card number, profile info etc. •  Screenshot path •  /private/var/mobile/Applications/ApplicationID/ OWASP
  • 49. 4. Buffer Overflows •  When the input data is longer than the buffer size, if it is accepted, it will overwrite other data in memory. •  No protection by default in C, ObjectiveC, and C++ Apple Recommends OWASP
  • 50. 5. Insecure Network Connections —  Protect the data while in transit —  Most commonly used protocol is HTTP or HTTPS – means using NSURL or NSURLConnection class —  HTTPS should be used —  Never use setAllowsAnyHTTPSCertificate:forHost: —  Fail safe on SSL error - Implement the connection:didFailWithError: delegate OWASP
  • 51. Advanced Mobile Code Reviews OWASP
  • 52. Android Testing – The Logic S. No. Checks Analysis Logic 1 Does the application leak sensitive information via Property Files? Check for presence of putString, MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE, addPreferencesFromResource in Source Code 2 Does the application leak sensitive information via SD Card storage? Check for presence of WRITE_EXTERNAL_STORAGE in Android Manifest File and getExternalStorageDirectory(), sdcard in Source code 3 Is the application vulnerable to TapJacking attack? Check for presence of <Button> tag not containing filterTouchesWhenObscured="true" in Layout file 4 CanMalicious Activity be performed due to insecure WebView implementation? Check for presence of addJavascriptInterface(), setJavaScriptEnabled(true) in Source code OWASP
  • 53. Android Testing – The Logic S. No. To Check Analysis Logic 5 Does the application leak sensitive information via hardcoded secrets? Check for presence of // and /* */ in Source code 6 Can sensitive information be enumerated due to the enabled Autocomplete feature? Check for presence of <Input> tag not containing textNoSuggestions in Layout file 7 Does the application leak sensitive information viaSQLite db? Check for presence of db, sqlite, database, insert, delete, select, table, cursor, rawQueryin Source code 8 Does the application leak sensitive information due to insecure Logging mechanism? Is critical data of the application encrypted using proper control? Check for presence of Log. In Source code Check for presence of MD5, base64, des in Source code 9 OWASP
  • 54. S. No. To Check Analysis Logic 10 Does the application implement a insecure transport mechanism? 11 Does the application leak sensitive system level information via Toast messages? Does the application have debugging enabled? Check for presence of http://, HttpURLConnection,URLConnection , URL, TrustAllSSLSocket-Factory, AllTrustSSLSocketFactory, NonValidatingSSLSocketFactory in Source code Check for presence of sensitive information in Toast.makeText Check for presence of android:debuggable set to true in Android Manifest File Check for the presence of uid, userid, imei, deviceId, deviceSerialNumber, devicePrint, XDSN, phone, mdn, did, IMSI, uuid in Source code Check for the presence of Action.getIntent() in the Source code 12 13 Does the application misuse or leaksensitive information like device identifiers or via a side channel? 14 Is the application vulnerable to Intent Injection? 15 Does the application misuse or leaksensitive information like Location Info or via a side channel? Check for the presence of getLastKnownLocation(), requestLocationUpdates(), getLatitude(), getLongitude(), LOCATION in Source code OWASP
  • 55. Handy tricks for Mobile Code Reviews •  Use the analysis logic given in the previous slides to create custom script for a quick static analysis. •  Use the custom script for a quick static analysis OWASP
  • 56. Results: Insecure Banking Application S. No. 1 2 3 4 5 6 Vulnerabilities Found Information Sniffing due to Unencrypted Transport medium Sensitive information disclosure via Property Files Sensitive information disclosure via SD card storage Sensitive information disclosure via SQLite DB Sensitive information disclosure via Device and Application Logs Sensitive information disclosure via Side OWASP Channel Leakage
  • 57. Results: Insecure Banking Application S. No. Vulnerabilities Found 7 8 Malicious Activity via Client side XSS Malicious Activity due to insecure WebView implementation 9 Sensitive information leakage due to hardcoded secrets 10 Sensitive information leakage due to weak encryption algorithm 11 Malicious Activity via Backdoor 12 Malicious Activity via Reverse Engineering OWASP
  • 58. Hybrid Mobile App – The Logic S No Checks 1 Does the application leak sensitive information via device memory? Analysis Logic "Look for strings like: ""Database"" ""Statement"" ""Ti.Database.install"" ""Titanium.Database.DB"" to locate all the locations where SQLite or any other database used to store content localy." 2 Does the application leak sensitive information via Property Files? "Check the function Ti.App.Properties.setObject() to know what parameters are passes and how the information is stored. The parameter passed in the function stores a cookie. Look for session related presence in the content handled by below mentioned keywords: Look for the keywords: "" getSharedPreferences();"" ""SharedPreferences settings"" "" CookieStore"" ""Cookie Manager"" ""CookieHandler"" ""PersistentCookieStore""" 3 Does the application leak sensitive information via SD Card storage? Look for keywords like: FileConnection SDCard File OWASP
  • 59. Hybrid Mobile App – The Logic 4 CanMalicious Activity be performed due to insecure WebView implementation? Look for Javascript and Webview 5 Can sensitive information be enumerated due to the enabled Autocomplete feature? Look for storage in the form fields. "TextFields" and look for the way its being handled. Also check if response.logged value is set to "true" for the username and password 6 Does the application leak sensitive information viaSQLite db? Check for presence of db, sqlite, database, insert, delete, select, table, cursor, rawQueryin Source code 7 Does the application leak sensitive information due to insecure Logging mechanism? Logging occurs via: Ti.API.log('info', 'message'); Ti.API.info('message'); console.log(); or even print message by system.out.println(); and also generating separate files for logs. Check for any sensitive data that is available in logs. 8 Is critical data of the application encrypted using proper Look in the file which has the "SQLiteEncryption" or "SQLCipher" or similar control? encryption class implementation present 9 Does the application implement a insecure transport mechanism? "Look for strings like: httpsconnection; secureconnection; getSecurityInfo(); httpconnection; certificateStore = require('ti.certificatestore'); certificateStore.addCertificate('server.p12', 'password'); to look for all instances related to SSL" OWASP
  • 60. Hybrid Mobile App – The Logic 10 Does the application leak sensitive system level information via Toast messages? Check for presence of sensitive information in Toast.makeText 11 Does the application have debugging enabled? Check for the string "debug" in the source code 12 Does the application misuse or leaksensitive information Check for the presence of uid, user-id, imei, deviceId, deviceSerialNumber, like device identifiers or via a side channel? devicePrint, X-DSN, phone, mdn, did, IMSI, uuid in Source code 13 Does the application misuse or leaksensitive information Check for the presence of getLastKnownLocation(), like Location Info or via a side channel? requestLocationUpdates(), getLatitude(), getLongitude(), LOCATION in Source code 14 Does the application leak sensitive information via source code? Look for: "password" , "pin", "mpin", or other related strings in the application source code 15 Does the application leak data in the cache? "Check for Keywords: ""Ti.Filesystem.applicationCacheDirectory"" ""cache"" ""HTTPClient cache"" throughout in the application source code If cache is not supposed to be used, it should be updated as: client.setRequestHeader('Cache-Control','no-cache'); client.setRequestHeader('Cache-Control','no-store'); appropriately." OWASP
  • 61. iOS Testing – The Logic S. No. Checks Analysis Logic 1 Does the application leak sensitive information via device memory? Check for presence ofNSFile, writeToFile in Source Code 2 Can the application leak sensitive information due to iOS default Screencapture feature? 3 Does the application leak sensitive information via hardcoded secrets? Check for the presence of window.hidden in applicationWillEnterBackground and applicationWillTerminate functions in Source code. Check for presence of // and /* */ in Source code 4 Is the application vulnerable to buffer overflow attack? Check for the presence of strcat, strcpy, strncat, strncpy, sprintf, vsprintf, gets in the Source code OWASP
  • 62. iOS Testing – The Logic S. No. Checks Analysis Logic 5 Can malicious activties be performed due to insecure implementation of URL Schemes? Check for the presence of presence of Authorisation in functions having openUrl, handleOpenURL. 6 Does the application leak sensitive information viaSQLite db? Check for presence of db, sqlite, database, insert, delete, select, table, cursor, sqlite3_prepare in Source code 7 Does the application leak sensitive information due to insecure Logging mechanism? Check for presence of NSLog in Source code 8 Is critical data of the application encrypted using proper control? Check for presence of MD5, base64, des in Source code OWASP
  • 63. iOS Testing – The Logic S. No. Checks Analysis Logic 9 Does the application implement a insecure transport mechanism? 10 Does the application misuse or leaksensitive information like device identifiers or via a side channel? 11 Does the application misuse or leaksensitive information like Location Info or via a side channel? Check for presence of http://, URL, setAllowsAnyHTTPSCertificate, NSURL,writeToUrl, NSURLConnection, CFStream, NSStreamin Source code. Also check for presence of redirection to http in via didFailWithError in the Source code. Check for the presence of uid, userid, imei, deviceId, deviceSerialNumber, devicePrint, XDSN, phone, mdn, did, IMSI, uuid in Source code Check for the presence of CLLocationManager, startUpdatingLocation, locationManager, didUpdateToLocation, CLLocationDegrees, CLLocation, CLLocationDistance, startMonitoringSignificantLocationC hanges, LOCATION in Source code OWASP
  • 64. •   QuesZons  and  Answers   •   Quiz   •   Feedback   OWASP