Computer Analytics of Machine Learning and Deep Neural Networking
Computer Analytics of Machine Learning and Deep Neural Networking
1."http://developer.android.com/reference/android/webkit/WebView.html#addJavascript
Interface(java.lang.Object,
java.lang.String) "
2.https://labs.mwrinfosecurity.com/blog/2013/09/24/webview-
addjavascriptinterface-remote-code-execution/
3.http://50.56.33.56/blog/?p=314
4.http://blog.trustlook.com/2013/09/04/alert-android-webview-
addjavascriptinterface-code-execution-vulnerability/
Please modify the below code:
=> Lcom/mparticle/MParticle;-
>registerWebView(Landroid/webkit/WebView;)V (0x12) --->
Landroid/webkit/WebView;-
>addJavascriptInterface(Ljava/lang/Object; Ljava/lang/String;)V
[Warning] External Storage Accessing:
External storage access found (Remember DO NOT write important files to
external storages):
=> Lcom/commonsware/cwac/provider/StreamProvider;-
>a(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;
(2)http://developer.android.com/reference/android/webkit/WebSettings.html#setAllowF
ileAccess(boolean)
Please add or modify
"yourWebView.getSettings().setAllowFileAccess(false)" to your WebView:
Lcom/odesk/android/api/ApiModule;-
>b(Landroid/content/Context;)Ljava/lang/String;
Lcom/odesk/android/common/binding/WebViewBindingAdapters;-
>a(Landroid/webkit/WebView; Ljava/lang/String;)V
[Warning] <WebView> WebView Potential XSS Attacks Checking:
Found "setJavaScriptEnabled(true)" in WebView, which could exposed to
potential XSS attacks. Please check the web page code
carefully and sanitize the output:
=> Lcom/odesk/android/common/binding/WebViewBindingAdapters;-
>a(Landroid/webkit/WebView; Ljava/lang/String;)V (0x14) --->
Landroid/webkit/WebSettings;->setJavaScriptEnabled(Z)V
[Notice] AndroidManifest Adb Backup Checking:
ADB Backup is ENABLED for this app (default: ENABLED). ADB Backup is a
good tool for backing up all of your files. If it's open
for this app, people who have your phone can copy all of the sensitive
data for this app in your phone (Prerequisite: 1.Unlock
phone's screen 2.Open the developer mode). The sensitive data may
include lifetime access token, username or password, etc.
Security case related to ADB Backup:
1.http://www.securityfocus.com/archive/1/530288/30/0/threaded
2.http://blog.c22.cc/advisories/cve-2013-5112-evernote-android-insecure-
storage-of-pin-data-bypass-of-pin-protection/
3.http://nelenkov.blogspot.co.uk/2012/06/unpacking-android-backups.html
Reference:
http://developer.android.com/guide/topics/manifest/application-
element.html#allowbackup
[Notice] <Command> Executing "root" or System Privilege Checking:
The app may has the code checking for "root" permission, mounting
filesystem operations or monitoring system:
Lcom/mparticle/internal/MPUtility;->isPhoneRooted()Z => 'su'
Lcom/mparticle/internal/MPUtility;->isPhoneRooted()Z =>
'/system/bin/'
Lcom/mparticle/internal/MPUtility;->isPhoneRooted()Z =>
'/system/bin/failsafe/'
[Notice] <Database><#CVE-2011-3901#> Android SQLite Databases Vulnerability
Checking:
This app is using Android SQLite databases but it's "NOT" suffering from
SQLite Journal Information Disclosure Vulnerability.
[Notice] File Unsafe Delete Checking:
Everything you delete may be recovered by any user or attacker,
especially rooted devices.
Please make sure do not use "file.delete()" to delete essential files.
Check this video: https://www.youtube.com/watch?v=tGw1fxUD-uY
=> Lcom/commonsware/cwac/provider/LocalPathStrategy;-
>i(Landroid/net/Uri;)V (0x8) ---> Ljava/io/File;->delete()Z
=> Lcom/crashlytics/android/core/CrashlyticsController;-
>deleteSessionPartFilesFor(Ljava/lang/String;)V (0x14) --->
Ljava/io/File;->delete()Z
=> Lcom/crashlytics/android/core/CrashlyticsController;-
>retainSessions([Ljava/io/File; Ljava/util/Set;)V (0x64) --->
Ljava/io/File;->delete()Z
=> Lcom/crashlytics/android/core/CrashlyticsController;-
>retainSessions([Ljava/io/File; Ljava/util/Set;)V (0xba) --->
Ljava/io/File;->delete()Z
=> Lcom/crashlytics/android/core/CrashlyticsController;-
>doCleanInvalidTempFiles([Ljava/io/File;)V (0x136) --->
Ljava/io/File;->delete()Z
=> Lcom/crashlytics/android/core/CrashlyticsFileMarker;->remove()Z
(0x8) ---> Ljava/io/File;->delete()Z
=> Lcom/crashlytics/android/core/InvalidSessionReport;->remove()V
(0x50) ---> Ljava/io/File;->delete()Z
=> Lcom/crashlytics/android/core/LogFileManager;-
>discardOldLogFiles(Ljava/util/Set;)V (0x38) ---> Ljava/io/File;->delete()Z
=> Lcom/crashlytics/android/core/QueueFileLogStore;-
>deleteLogFile()V (0xa) ---> Ljava/io/File;->delete()Z
=> Lcom/crashlytics/android/core/SessionReport;->remove()V (0x48)
---> Ljava/io/File;->delete()Z
=> Lcom/crashlytics/android/core/Utils;->capFileCount(Ljava/io/File;
Ljava/io/FilenameFilter; I Ljava/util/Comparator;)I
(0x2c) ---> Ljava/io/File;->delete()Z
=> Lcom/getkeepsafe/relinker/ReLinkerInstance;-
>b(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;)V (0x64)
---> Ljava/io/File;->delete()Z
=> Lcom/google/android/gms/common/data/BitmapTeleporter;-
>a()Ljava/io/FileOutputStream; (0x46) ---> Ljava/io/File;->delete()Z
=> Lcom/google/android/gms/internal/o;-
>getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase; (0x7a) --->
Ljava/io/File;->delete()Z
=> Lcom/google/android/gms/internal/zzag;->b(Ljava/lang/String;)V
(0xa) ---> Ljava/io/File;->delete()Z
=> Lcom/google/android/gms/internal/zzag;->a()V (0xba) --->
Ljava/io/File;->delete()Z
=> Lcom/google/android/gms/internal/zzag;->a(Ljava/lang/String;
Lcom/google/android/gms/internal/zzc;)V (0x88) --->
Ljava/io/File;->delete()Z
=> Lcom/google/android/gms/internal/zzag;->a(Ljava/lang/String;
Lcom/google/android/gms/internal/zzc;)V (0x184) --->
Ljava/io/File;->delete()Z
=> Lcom/google/android/gms/measurement/internal/zze$b;-
>getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase; (0x98)
---> Ljava/io/File;->delete()Z
=> Lcom/google/android/gms/tagmanager/h;-
>getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase; (0x32) --->
Ljava/io/File;->delete()Z
=> Lcom/newrelic/com/google/common/io/Files;->move(Ljava/io/File;
Ljava/io/File;)V (0x48) ---> Ljava/io/File;->delete()Z
=> Lcom/newrelic/com/google/common/io/Files;->move(Ljava/io/File;
Ljava/io/File;)V (0x54) ---> Ljava/io/File;->delete()Z
=> Lcom/odesk/android/notifications/NotificationsModule;-
>c(Landroid/content/Context;)V (0x4a) ---> Ljava/io/File;->delete()Z
=>
Lcom/upwork/android/legacy/findWork/submitProposal/SubmitProposalStorage;-
>a(Lcom/upwork/android/legacy/findWork/submitPro
posal/SubmitProposalStorage; Ljava/lang/String;
Lio/realm/Realm;)V (0x70) ---> Ljava/io/File;->delete()Z
=>
Lcom/upwork/android/legacy/findWork/submitProposal/coverLetter/attachments/e;-
>a(Lcom/upwork/android/legacy/findWork/submi
tProposal/coverLetter/attachments/e; Ljava/lang/String;
Ljava/lang/String; Lio/realm/Realm;)V (0x1e) --->
Ljava/io/File;->delete()Z
=> Lcom/upwork/android/mvvmp/files/FileUtils;-
>d(Ljava/lang/String;)V (0x32) ---> Ljava/io/File;->delete()Z
[Notice] <Debug><Hacker> Codes for Checking Android Debug Mode:
Found codes for checking "ApplicationInfo.FLAG_DEBUGGABLE" in
AndroidManifest.xml:
=> Lcom/mparticle/internal/MPUtility;->isAppDebuggable
(Landroid/content/Context;)Z
[Notice] <Hacker> APK Installing Source Checking:
This app has code checking APK installer sources(e.g. from Google Play,
from Amazon, etc.). It might be used to check for whether
the app is hacked by the attackers.
=> Lcom/google/android/gms/analytics/zzj;-
>a()Lcom/google/android/gms/internal/zzans; (0x3a) --->
Landroid/content/pm/PackageManager;-
>getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
=> Lcom/google/android/gms/measurement/internal/zzn;->e()V (0x30)
--->
Landroid/content/pm/PackageManager;-
>getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
=> Lcom/mparticle/internal/b;-
>a(Landroid/content/Context;)Lorg/json/JSONObject; (0x7c) --->
Landroid/content/pm/PackageManager;-
>getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
[Notice] <Signature><Hacker> Getting Signature Code Checking:
This app has code checking the package signature in the code. It might
be used to check for whether the app is hacked by the
attackers.
=> Lcom/google/android/gms/common/zzo;-
>isGooglePlayServicesAvailable(Landroid/content/Context;)I (0x13a) --->
Landroid/content/pm/PackageManager;-
>getPackageInfo(Ljava/lang/String; I)Landroid/content/pm/PackageInfo;
=> Lcom/google/android/gms/common/util/zzx;-
>a(Landroid/content/Context; I)Z (0x24) --->
Landroid/content/pm/PackageManager;-
>getPackageInfo(Ljava/lang/String; I)Landroid/content/pm/PackageInfo;
=> Lcom/google/android/gms/measurement/internal/zzn;->E()Z (0x24)
--->
Landroid/content/pm/PackageManager;-
>getPackageInfo(Ljava/lang/String; I)Landroid/content/pm/PackageInfo;
=> Lcom/google/android/gms/measurement/internal/zzn;->e()V (0x216)
--->
Landroid/content/pm/PackageManager;-
>getPackageInfo(Ljava/lang/String; I)Landroid/content/pm/PackageInfo;
[Notice] AndroidManifest Exported Components Checking 2:
Found "exported" components(except for Launcher) for receiving Google's
"Android" actions (AndroidManifest.xml):
receiver => io.branch.referral.InstallListener
[Info] <Command> Runtime Command Checking:
This app is not using critical function
'Runtime.getRuntime().exec("...")'.
[Info] <Database> SQLiteDatabase Transaction Deprecated Checking:
Ignore checking "SQLiteDatabase:beginTransactionNonExclusive" because
your set minSdk >= 11.
[Info] <Database> Android SQLite Databases Encryption (SQLite Encryption Extension
(SEE)):
This app is "NOT" using SQLite Encryption Extension (SEE) on Android
(http://www.sqlite.org/android) to encrypt or decrpyt
databases.
[Info] <Database> Android SQLite Databases Encryption (SQLCipher):
This app is "NOT" using SQLCipher(http://sqlcipher.net/) to encrypt or
decrpyt databases.
[Info] <Debug> Android Debug Mode Checking:
DEBUG mode is OFF(android:debuggable="false") in AndroidManifest.xml.
[Info] Dynamic Code Loading:
No dynamic code loading(DexClassLoader) found.
[Info] <#BID 64208, CVE-2013-6271#> Fragment Vulnerability Checking:
Did not detect the vulnerability of "Fragment" dynamically loading into
"PreferenceActivity" or "SherlockPreferenceActivity"
[Info] <Framework> Framework - MonoDroid:
This app is NOT using MonoDroid Framework (http://xamarin.com/android).
[Info] <Hacker> Base64 String Encryption:
No encoded Base64 String or Urls found.
[Info] <Database><Hacker> Key for Android SQLite Databases Encryption:
Did not find using the symmetric key(PRAGMA key) to encrypt the SQLite
databases (It's still possible that it might use but we
did not find out).
[Info] <KeyStore><Hacker> KeyStore File Location:
Did not find any possible BKS keystores or certificate keystore file
(Notice: It does not mean this app does not use keysotre):
[Info] <Hacker> Code Setting Preventing Screenshot Capturing:
Did not detect this app has code setting preventing screenshot
capturing.
[Info] HttpURLConnection Android Bug Checking:
Ignore checking "http.keepAlive" because you're not using
"HttpURLConnection" and min_Sdk > 8.
[Info] <KeyStore> KeyStore Type Checking:
KeyStore 'BKS' type check OK
[Info] Google Cloud Messaging Suggestion:
Nothing to suggest.
[Info] <#CVE-2013-4787#> Master Key Type I Vulnerability:
No Master Key Type I Vulnerability in this APK.
[Info] App Sandbox Permission Checking:
No security issues "MODE_WORLD_READABLE" or "MODE_WORLD_WRITEABLE" found
on 'openOrCreateDatabase' or 'openOrCreateDatabase2' or
'getDir' or 'getSharedPreferences' or 'openFileOutput'
[Info] Native Library Loading Checking:
No native library loaded.
[Info] AndroidManifest Dangerous ProtectionLevel of Permission Checking:
No "dangerous" protection level customized permission found
(AndroidManifest.xml).
[Info] AndroidManifest PermissionGroup Checking:
PermissionGroup in permission tag of AndroidManifest sets correctly.
[Info] AndroidManifest "intent-filter" Settings Checking:
"intent-filter" of AndroidManifest.xml check OK.
[Info] AndroidManifest Normal ProtectionLevel of Permission Checking:
No default or "normal" protection level customized permission found
(AndroidManifest.xml).
[Info] <#CVE-2013-6272#> AndroidManifest Exported Lost Prefix Checking:
No exported components that forgot to add "android:" prefix.
[Info] AndroidManifest ContentProvider Exported Checking:
No exported "ContentProvider" found (AndroidManifest.xml).
[Info] Codes for Sending SMS:
Did not detect this app has code for sending SMS messages
(sendDataMessage, sendMultipartTextMessage or sendTextMessage).
[Info] <System> AndroidManifest sharedUserId Checking:
This app does not use "android.uid.system" sharedUserId.
[Info] <SSL_Security> SSL Implementation Checking (Verifying Host Name in Custom
Classes):
Self-defined HOSTNAME VERIFIER checking OK.
[Info] <SSL_Security> SSL Implementation Checking (Verifying Host Name in Fields):
Critical vulnerability "ALLOW_ALL_HOSTNAME_VERIFIER" field setting or
"AllowAllHostnameVerifier" class instance not found.
[Info] <SSL_Security> SSL Implementation Checking (Insecure component):
Did not detect SSLSocketFactory by insecure method "getInsecure".
[Info] <SSL_Security> SSL Implementation Checking (HttpHost):
DEFAULT_SCHEME_NAME for HttpHost check: OK
[Info] <SSL_Security> SSL Connection Checking:
Did not discover urls that are not under SSL (Notice: if you encrypt the
url string, we can not discover that).
[Info] <SSL_Security> SSL Implementation Checking (WebViewClient for WebView):
Did not detect critical usage of "WebViewClient"(MITM Vulnerability).
[Info] <SSL_Security> SSL Certificate Verification Checking:
Did not find vulnerable X509Certificate code.
[Info] Unnecessary Permission Checking:
Permission 'android.permission.ACCESS_MOCK_LOCATION' sets correctly.
[Info] Accessing the Internet Checking:
This app is using the Internet via HTTP protocol.
[Info] AndroidManifest System Use Permission Checking:
No system-level critical use-permission found.
------------------------------------------------------------
AndroBugs analyzing time: 20.773044 secs
Total elapsed time: 85.866828 secs