APP checklist 2017

Penetration testing checklist based on OWASP Top 10 Mobile 2016
   
M1. Improper Platform UsageTest NameResult
M1-01Misuse of App permissionsIssue
M1-02Insecure version of OS Installation AllowedIssue
M1-03Abusing Android Components through IPC intents ("exported" and "intent-filter")Issue
M1-04Misuse of Keychain , Touch ID and other security related controlsIssue
M1-05Minimum Device Security Requirements absentIssue
M1-06Excessive port opened at FirewallIssue
M1-07Default credentials on Application ServerIssue
M1-08Weak password policy ImplementationIssue
M1-09Exposure of Webservices through WSDL documentIssue
M1-10Security Misconfiguration on Server APIIssue
M1-11Security Patching on Server APIIssue
M1-12Input validation on APIIssue
M1-13Information Exposure through API response messageIssue
M1-14Control of interaction frequency on API (Replay Attack)Issue
   
M2. Insecure Data StorageTest NameResult
M2-01Unrestricted Backup fileIssue
M2-02Unencrypted Database filesIssue
M2-03Insecure Shared StorageIssue
M2-04Insecure Application Data StorageIssue
M2-05Information Disclosure through Logcat/Apple System Log (ASL)Issue
M2-06Application Backgrounding (Screenshot)Issue
M2-07Copy/Paste Buffer CachingIssue
M2-08Keyboard Press CachingIssue
   
M3. Insecure CommunicationTest NameResult
M3-01Insecure Transport Layer ProtocolsIssue
M3-02Use of Insecure and Deprecated algorithmsIssue
M3-03Use of Disabling certificate validationIssue
M3-04SSL pinning ImplementationIssue
M3-05End-to-end encryptionIssue
   
M4. Insecure AuthenticationTest NameResult
M4-01Remember Credentials Functionality (Persistent authentication)Issue
M4-02Client Side Based Authentication FlawsIssue
M4-03Session invalidation on BackendIssue
M4-04Session Timeout ProtectionIssue
M4-05Cookie RotationIssue
M4-06Multiple concurrent loginsIssue
M4-07Exposing Device Specific Identifiers in Attacker Visible ElementsIssue
   
M5. Insufficient Cryptography Test NameResult
M5-01Cryptographic Based Storage StrengthIssue
M5-02Poor key management processIssue
M5-03Use of custom encryption protocolsIssue
M5-04Token/Session Creation and handlingIssue
   
M6. Insecure Authorization Test NameResult
M6-01Client Side Authorization BreachesIssue
M6-02Insecure Direct Object referencesIssue
M6-03Missing function level access controlIssue
M6-04Bypassing business logic flawsIssue
   
M7 Client Code Quality Test NameResult
M7-01Content Providers: SQL Injection and Local File InclusionIssue
M7-02Broadcast ReceiverIssue
M7-03Service componentIssue
M7-04Insufficient WebView hardeningIssue
M7-05Injection (SQLite Injection, XML Injection)Issue
M7-06Local File Inclusion through NSFileManager or Webviews 
M7-07Abusing URL schemes or Deeplinks 
M7-08Sensitive Information MaskingIssue
   
M8. Code TamperingTest NameResult
M8-01Unauthorized Code ModificationIssue
M8-02Runtime ManipulationIssue
M8-03Rooted or Jail-broken device checkingIssue
   
M9. Reverse EngineeringTest NameResult
M9-01Reverse Engineering the Application Code (Code Obfuscating Checking)Issue
M9-02Information leakage/Hardcoded credential in the binaries Issue
   
M10. Extraneous Functionality Test NameResult
M10-01Debuggable ApplicationIssue
M10-02Passwords/ Connection String disclosureIssue
M10-03Hidden and Unscrutinised functionalitiesIssue

 

 

 

Penetration testing checklist based on OWASP Top 10 Mobile 2016
       
Static analysisTest NameDescriptionToolApplicable PlatformOWASPResult

Reverse Engineering the Application Code 

(Code Obfuscating Checking)

Disassembling and Decompiling the applicationapktool, dex2jar, Clutch, ClassdumpAllM9Issue
Information leakage/Hardcoded credential in the binaries Identify sensitive information through binary/source codestring, jdgui, IDA, HopperAllM9Issue
Unauthorized Code ModificationStatic code modification, Binary patching, Bypass check sum mechanismapktool, HopperAllM8Issue
Misuse of App permissionsIdentify excessive App permissionsapktool, MobSFAndroidM1Issue
Insecure version of OS Installation AllowedIdentify "minSdkVersion" on apktool.yml, the value be set over than 17. For iOS, identify minOS using idb.apktool, idbAllM1Issue

Abusing Android Components through IPC intents 

("exported" and "intent-filter")

Identify android exported componentsMobSF
Androidmanifest.xml
AndroidM1Issue
Unrestricted Backup fileCheck "android:allowBackup" attribute which should be set to "false"apktool
Androidmanifest.xml
AndroidM2Issue
Cryptographic Based Storage StrengthIdentify insecure/deprecated cryptographic algorithms (RC4, MD5, SHA1) on sourcecodejdgui, MobSF, Qark, Hopper, iFunboxAllM5Issue
Poor key management processIdentify hardcoded key in application or Keys may be intercepted via Binary attacksjdgui, MobSF, Qark, Hopper, iFunboxAllM5Issue
Use of custom encryption protocolsIdentify implementing their own protocol jdgui, MobSF, Qark, Hopper, iFunboxAllM5Issue
Debuggable ApplicationIdentify "android:debuggable" attributeadb, MobSFAndroidM10Issue
       

Dynamic and

 Runtime analysis

Test NameDescriptionToolApplicable PlatformOWASPResult

Misuse of Keychain , Touch ID and other security

 related controls

Identify misuse of Data protection API on Keychain, Misuse of TouchID 

(Retrieve credentials from Local Storage, Local Authen)

iDeviceiOSM1Issue
Minimum Device Security Requirements absentEnsure that app cannot execute when the PIN or Pattern lock is not enabled.DeviceAllM1Issue
Unencrypted Database filesCheck encryption on database filesadb, idb, iFunboxAllM2Issue
Insecure Shared Storage

Identify Sensitive Data on Shared Storage, SD card storage encryption, 

Shared preferences MODE_WORLD_READABLE

adbAndroidM2Issue
Insecure Application Data StorageIdentify Sensitive Data in application files (application log, Cache file, Cookie)adb, idb, iFunbox,BinaryCookieReaderAllM2Issue
Information Disclosure through Logcat/Apple System Log (ASL)Identify sensitive information through application logadb logcat, idb, libimobiledeviceAllM2Issue
Application Backgrounding (Screenshot)Identify application snapshot/screenshot backgroundingDevice, iFunboxAllM2Issue
Copy/Paste Buffer CachingIdentify disabling Copy/Paste function for sensitive part of the application on EditText/UITextFieldidb, iFunboxAllM2Issue
Keyboard Press CachingIdentify keyboard cache file located in: /var/mobile/Library/Keyboard
/data/data/com.android.providers.userdictionary/databases/user_dict.db
Device, idb, iFunboxAllM2Issue
Unrestricted Backup fileFor Android, Check "android:allowBackup" attribute which should be set to "false"
For iOS, Use iTune to backup application folder in order to check sensitive info from backup folder
apktool,iPhone Backup ExtractorAllM2Issue
Remember Credentials Functionality (Persistent authentication)Identify user's password or sessions on the deviceadb, idb, iFunboxAllM4Issue
Client Side Based Authentication FlawsPerform binary attacks against the mobile app in order to bypass offline authenticationadb, Drozer, Cycript, Snoop-it, BurpsuiteAllM4Issue
Client Side Authorization Breaches

Perform binary attacks against the mobile app and try to execute privileged functionality 

that should only be executable with a user of higher privilege

adb, Drozer, Cycript, Snoop-it, BurpsuiteAllM6Issue
Content Providers: SQL Injection and Local File InclusionIdentify SQLi and LFI on Content provider componentDrozerAndroidM7Issue
Broadcast ReceiverIdentify intent-filter on broadcast and receiver component in order to directly access and sniff the informationDrozerAndroidM7Issue
Service componentInvoke Service component directlyDrozerAndroidM7Issue
Insufficient WebView hardeningIdentify misconfiguration on "android.webkit.WebSettings" 
(Javascript/File access/Plugins), XSS through UIWebview
jdgui, iDeviceAllM7Issue
Injection (SQLite Injection, XML Injection)Identify SQLi and XMLi on applicationadb, iDevice, BurpsuiteAllM7Issue
Local File Inclusion through WebviewsCheck LFI on application(../ , ../../blah\0) Webviews FileAccess attack through setAllowFileAccessjdgui, iDeviceAllM7Issue
Abusing URL schemes or DeeplinksFor iOS: Identify URL schemes through info.plist and Clutch+Strings to obtain URL scheme structures
For Android: Identify URL schemes through source code or manifest file
apktool, jdgui, Clutch, StringsAllM7Issue
Sensitive Information MaskingIdentify sensitive information masking (Creditcard no. on UI and HTTPs traffic)Device, BurpsuiteAllM7Issue
Runtime ManipulationRun-time manipulation, Method swizzlingFrida, Cycript, Snoop-itAllM8Issue
Rooted or Jail-broken device checking

Detect root/jb detection code in the reverse engineered app file.If found, delete/ change the access control of the 

file containing the code and restart the app. 

Or Install tools like hidemyroot and run the apps

tsProtector, RootCloak2AllM8Issue
Passwords/ Connection String disclosureIdentify sensitive information (Credential) between mobile and APIjdgui, BurpsuiteAllM10Issue
Hidden and Unscrutinised functionalitiesIdentify extraneous functionality (Hidden back-end URL)jdgui, BurpsuiteAllM10Issue
       
Communication ChannelTest NameDescriptionToolApplicable PlatformOWASPResult
Insecure Transport Layer ProtocolsObserve the device's network traffic through a proxy that SSL is implemented or notBurpsuiteAllM3Issue
Use of Insecure and Deprecated algorithmsIdentify SSL/TLS Encryption Algorithmstestssl.sh, Qualys SSL LabsAllM3Issue
Use of Disabling certificate validationAllow tester to intercept SSL traffic without Certificate installation (checkServerTrusted with nobody)jdgui, MobSF, QarkAllM3Issue
SSL pinning Implementation

Check whether application accepts a certificate from any trusted CA (Burpsuite) or not. E.g. Check setAllowsAnyHTTPSCertificate(iOS) 

and AllowAllHostnameVerifier(Android)

jdgui, MobSF, QarkAllM3Issue
End-to-end encryptionIdentify end-to-end encryption on application layerBurpsuiteAllM3Issue
       

Server Side - 

Webservices and API

Test NameDescriptionToolApplicable PlatformOWASPResult
Excessive port opened at FirewallIdentify opened port at Server-side URL/IP AddressNmapAllM1Issue
Default credentials on Application ServerIdentify default credentials on Backend server (e.g. Tomcat Application server using tomcat/tomcat, admin/tomcat)Web BrowserAllM1Issue
Weak password policy ImplementationIdentify weak password policy implementation both mobile and server side (e.g. Bypass password complexity checking on UI)BurpsuiteAllM1Issue
Exposure of Webservices through WSDL documentIdentify webservices help pages (*.asmx) which show methods and structureWeb BrowserAllM1Issue
Security Misconfiguration on Server APIIdentify webserver configuration (e.g. Error handling, HTTP response banner)Web Browser, BurpsuiteAllM1Issue
Security Patching on Server APIIdentify vulnerability on server APINessusAllM1Issue
Input validation on APICheck input validation (e.g. SQL Injection, XXE) on API/WebservicesBurpsuiteAllM1Issue
Information Exposure through API response messageIdentify sensitive information on API response message/headerBurpsuiteAllM1Issue
Control of interaction frequency on API (Replay Attack)Conduct simultaneous attack on API (e.g. OTP, email sending)Burpsuite (Intruder)AllM1Issue
Session invalidation on BackendEnsure that all session invalidation events are executed on the server side and not just on the mobile appBurpsuiteAllM4Issue
Session Timeout ProtectionMobile app must have adequate timeout protection on the backend componentsBurpsuiteAllM4Issue
Cookie RotationEnsure that reset cookies is properly implemented during authentication state changes 
(Anonymous<->User, User A<->User B, Timeout)
BurpsuiteAllM4Issue
Multiple concurrent loginsSimultaneously login from multiple device with the same credentialBurpsuiteAllM4Issue
Exposing Device Specific Identifiers in Attacker Visible ElementsObserve the device's network traffic through a proxy that Device's information (UDID) is sent during the transmission or not.BurpsuiteAllM4Issue
Token/Session Creation and handlingThey should be standard algorithm, sufficiently long, complex, and pseudo-random so as to be resistant to guessing/anticipation attacks.BurpsuiteAllM5Issue
Insecure Direct Object referencesDirectly access unauthorised object/var through HTTPs trafficBurpsuiteAllM6Issue
Missing function level access controlDirectly access unauthorised function through HTTPs trafficBurpsuiteAllM6Issue
Bypassing business logic flawsBypass business logic data validation, Circumvention of Work Flows BurpsuiteAllM6Issue
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值