Search Sets - Nuvolect/DeepDive-Android GitHub Wiki

Search Set

DeepDive includes four default search sets. The user can create additional search sets by using the UI or by editing JSON files directly.

Default Search Set

This basic search set exposes code fundamental to application security.

Query Description
password Common security key
passphrase Common security key
keystore.bks Bouncy Castle Keystore
keystore.bc Bouncy Castle Keystore
CertAndKeyGen Method for storing private key
KeyPairGenerator Android keystore
CipherOutputStream Javax.crypto library
whitelist Key for tracking users
blacklist Key for tracking users
AES/CBC/PKCS5Padding Encryption methodology
SecretKeySpec Java crypto
crypto Common search for crypto

Editing

Any of the default search sets can be modified by selecting the "Edit" checkbox at the bottom of the page. This will expose plus (+) and minus (-) characters allowing for the addition or deletion of set items and entire sets. The only way to edit a specific search item from the UI is to delete it and create it again. Alternatively JSON can be edited directly.

Search Set JSON Files

Search set files are copied from the app into the .search_set folder upon installation. The example DIVA search set is shown as an example the JSON structure in addition showing how to search for single and multiple keywords.

[
  {
    "query": "\"transaction with credit card\"",
    "description": "Challenge 1 - Insecure Logging"
  },
  {
    "query": "vendorSecretKey",
    "description": "Challenge 2 - Hardcoding issues"
  },
  {
    "query": "\"putString(\\\"password\\\"\"",
    "description": "Challenge 3, Insecure Data Storage - Part 1"
  },
  {
    "query": "+\"insert into\" +\"credentials saved\"",
    "description": "Challenge 4, Insecure Data Storage - Part 2"
  },
  {
    "query": "+getApplicationInfo +credentials",
    "description": "Challenge 5, Insecure Data Storage - Part 3"
  },
  {
    "query": "+getExternalStorageDirectory +\"credentials saved\"",
    "description": "Challenge 6, Insecure Data Storage - Part 4"
  },
  {
    "query": "+execSql +\"credit card\"",
    "description": "Challenge 7, Input Validation Issues"
  },
  {
    "query": "+webview +loadurl +edittext",
    "description": "Challenge 8, Input Validation Issues"
  },
  {
    "query": "\"api key\"",
    "description": "Challenge 9 - 11, Access Control Issues"
  },
  {
    "query": "\"see you in hell\"",
    "description": "Challenge 12, Hardcoding Issues"
  },
  {
    "query": "+\"access denied\" +Toast",
    "description": "Challenge 13, Hardcoding Issues"
  }
]

Analytics

Query Description
"com.google.analytics" Google Analytics
EasyTracker Google Analytics
"com.crashlytics" Crashlytics
localytics www.localytics.com/
"org.piwik.sdk" Piwik Tracking SDK
"com.segment.analytics.Analytics" Segment Analytics
"com.mparticle" mParticle
"react.native.google.analytics.bridge" Google Analytics Bridge
"com.github.florent37.androidanalytics" Florent37 Analytics
"ly.count.android.sdk" Countly Mobile Analytics

HummingWhale

This attack, described by Check Point and Theo Thimou at clark.com, is distributed in 40 apps. This Search Set will detect the app by searching for offending package names.

The HummingWhale family of malware allows hackers to turn your phone into a remote cash-generating machine for them by allowing other fraudulent apps on your device without permission.

HummingWhale malware @ Check Point HummingWhale malware @ Clark Howard