Moderate Risk

Threat level

com.demo.qrcode

QR Pass

Analyzed on 2021-10-13T10:36:09.229409

4

permissions

2

activities

0

services

0

receivers

2

domains

File sums

MD5 5e1bfeae02c5a2e2b5ee18b9c74ada92
SHA1 7eeb8243493b3f28904c7381ddd019d6b821a57a
SHA256 9cc8cfa352416aa7227f691f5535a86c1d5228384d474cef082fe6c1c0057ed4
Size 12.7MB

APKiD

Information computed with APKiD.

/tmp/tmpuhc8mo_o!classes.dex
yara_issue
  • yara issue - dex file recognized by apkid but not yara module
anti_vm
  • Build.FINGERPRINT check
  • Build.MANUFACTURER check
  • Build.BOARD check
compiler
  • unknown (please file detection issue!)
/tmp/tmpuhc8mo_o!classes2.dex
yara_issue
  • yara issue - dex file recognized by apkid but not yara module
compiler
  • unknown (please file detection issue!)

SSdeep

Information computed with ssdeep.

APK file 98304:2KlWzfrD2EjqF4gUNlSDfUmbv4ABONu6Y+xW9K62WLie3+y2qamSG0IE2Y8ltbbN:2KliOKFODpbQg96YjWy2+ouRLwT3+
Manifest 96:N/kU6fXrKTAWKG5r/zn7AFypual+nSFIR5D1Oj9BUkMYaOoCY:N/MrKTAdG5Dzn7AF…
classes.dex 98304:b4gUNlSDfUmbv4ABONu6Y+xW9K62WLie3+y2qamSC:EFODpbQg96YjWy2a
classes2.dex 49152:Fl4hSsLDEE20FQrZWRfiwhsc62tixMpTU7PbCmTwTpJR:j0IE2Y8ltbbCOwT3R

Dexofuzzy

Information computed with Dexofuzzy.

classes.dex None
classes2.dex None

APK details

Information computed with AndroGuard and Pithus.

Package com.demo.qrcode
App name QR Pass
Version name 1.0
Version code 1
SDK 28 - 30
UAID 17cc271647b1d69f477be1fd766ca86764837684
Signature Signature V2
Frosting Not frosted
Blocks found within V2 signature:
  • 0x7109871a: Unknown
  • 0x504b4453: Dependency metadata
  • 0x42726577: Verity padding

Certificate details

Information computed with AndroGuard.

MD5 742825630460b216bd5b02e722fea338
SHA1 f3092c74070263f00fab88e0691173fa77581c2a
SHA256 997ea51ad6bf0954b79499f5fe64436837b3195e5315e47efe7c9c47fe84644b
Issuer Common Name: edofox
Not before 2021-10-07T14:57:11+00:00
Not after 2046-10-01T14:57:11+00:00

File Analysis

Information computed with MobSF.

Findings Files
Certificate/Key files hardcoded inside the app. okhttp3/internal/publicsuffix/NOTICE

Manifest analysis

Information computed with MobSF.

Medium Application Data can be Backed up[android:allowBackup=true]
This flag allows anyone to backup your application data via adb. It allows users who have enabled USB debugging to copy application data off of the device.

Main Activity

Information computed with AndroGuard.

com.demo.qrcode.ScanQR

Activities

Information computed with AndroGuard.

com.demo.qrcode.ScanQR
com.journeyapps.barcodescanner.CaptureActivity

NIAP analysis

Information computed with MobSF.

FCS_RBG_EXT.1.1 The application invoke platform-provided DRBG functionality for its cryptographic operations.
Random Bit Generation Services
FCS_STO_EXT.1.1 The application does not store any credentials to non-volatile memory.
Storage of Credentials
FCS_CKM_EXT.1.1 The application implement asymmetric key generation.
Cryptographic Key Generation Services
FDP_DEC_EXT.1.1 The application has access to ['network connectivity', 'camera'].
Access to Platform Resources
FDP_DEC_EXT.1.2 The application has access to no sensitive information repositories.
Access to Platform Resources
FDP_NET_EXT.1.1 The application has user/application initiated network communications.
Network Communications
FDP_DAR_EXT.1.1 The application implement functionality to encrypt sensitive data in non-volatile memory.
Encryption Of Sensitive Application Data
FMT_MEC_EXT.1.1 The application invoke the mechanisms recommended by the platform vendor for storing and setting configuration options.
Supported Configuration Mechanism
FTP_DIT_EXT.1.1 The application does encrypt some transmitted data with HTTPS/TLS/SSH between itself and another trusted IT product.
Protection of Data in Transit
FCS_RBG_EXT.2.1
FCS_RBG_EXT.2.2
The application perform all deterministic random bit generation (DRBG) services in accordance with NIST Special Publication 800-90A using Hash_DRBG. The deterministic RBG is seeded by an entropy source that accumulates entropy from a platform-based DRBG and a software-based noise source, with a minimum of 256 bits of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
Random Bit Generation from Application
FCS_CKM.1.1(1) The application generate asymmetric cryptographic keys not in accordance with FCS_CKM.1.1(1) using key generation algorithm RSA schemes and cryptographic key sizes of 1024-bit or lower.
Cryptographic Asymmetric Key Generation
FCS_COP.1.1(1) The application perform encryption/decryption in accordance with a specified cryptographic algorithm AES-CBC (as defined in NIST SP 800-38A) mode or AES-GCM (as defined in NIST SP 800-38D) and cryptographic key sizes 256-bit/128-bit.
Cryptographic Operation - Encryption/Decryption
FCS_HTTPS_EXT.1.1 The application implement the HTTPS protocol that complies with RFC 2818.
HTTPS Protocol
FCS_HTTPS_EXT.1.2 The application implement HTTPS using TLS.
HTTPS Protocol
FCS_HTTPS_EXT.1.3 The application notify the user and not establish the connection or request application authorization to establish the connection if the peer certificate is deemed invalid.
HTTPS Protocol
FIA_X509_EXT.2.1 The application use X.509v3 certificates as defined by RFC 5280 to support authentication for HTTPS , TLS.
X.509 Certificate Authentication
FCS_CKM.1.1(2) The application shall generate symmetric cryptographic keys using a Random Bit Generator as specified in FCS_RBG_EXT.1 and specified cryptographic key sizes 128 bit or 256 bit.
Cryptographic Symmetric Key Generation

Code analysis

Information computed with MobSF.

Low
CVSS:7.5
The App logs information. Sensitive information should never be logged.
MASVS: MSTG-STORAGE-3
CWE-532 Insertion of Sensitive Information into Log File
Files:
 org/joda/time/tz/DateTimeZoneBuilder.java
kotlinx/coroutines/debug/AgentPremain$installSignalHandler$1.java
com/journeyapps/barcodescanner/CaptureManager.java
com/journeyapps/barcodescanner/camera/LegacyPreviewScalingStrategy.java
com/journeyapps/barcodescanner/camera/AutoFocusManager.java
com/journeyapps/barcodescanner/camera/FitCenterStrategy.java
com/journeyapps/barcodescanner/camera/CameraManager.java
com/journeyapps/barcodescanner/DecoderThread.java
com/journeyapps/barcodescanner/camera/CenterCropStrategy.java
com/journeyapps/barcodescanner/camera/PreviewScalingStrategy.java
COSE/ASN1.java
com/demo/qrcode/Shelly.java
org/joda/time/tz/ZoneInfoCompiler.java
com/demo/qrcode/Decoder.java
com/journeyapps/barcodescanner/CameraPreview.java
com/journeyapps/barcodescanner/camera/CameraInstance.java
com/journeyapps/barcodescanner/camera/CameraConfigurationUtils.java
kotlin/io/ConsoleKt.java
High
CVSS:5.5
App creates temp file. Sensitive information should never be written into a temp file.
MASVS: MSTG-STORAGE-2
CWE-276 Incorrect Default Permissions
M2: Insecure Data Storage
Files:
 kotlin/io/path/PathsKt__PathUtilsKt.java
kotlin/io/FilesKt__UtilsKt.java
com/journeyapps/barcodescanner/CaptureManager.java
High
CVSS:7.5
The App uses an insecure Random Number Generator.
MASVS: MSTG-CRYPTO-6
CWE-330 Use of Insufficiently Random Values
M5: Insufficient Cryptography
Files:
 kotlin/collections/EmptyList.java
kotlin/random/AbstractPlatformRandom.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$4.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$1.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$6.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$3.java
kotlin/random/KotlinRandom.java
kotlin/collections/AbstractList.java
kotlin/collections/RingBuffer.java
kotlin/random/PlatformRandomKt.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$7.java
kotlin/collections/CollectionsKt__CollectionsJVMKt.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$1.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$2.java
kotlin/random/jdk8/PlatformThreadLocalRandom.java
okio/Options.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$4.java
kotlin/collections/builders/ListBuilder.java
kotlin/collections/CollectionsKt___CollectionsKt.java
kotlin/random/FallbackThreadLocalRandom.java
kotlin/collections/MovingSubList.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$2.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$3.java
kotlin/collections/CollectionsKt__MutableCollectionsJVMKt.java
kotlin/random/FallbackThreadLocalRandom$implStorage$1.java
kotlin/random/PlatformRandom.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$5.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$8.java
kotlin/collections/CollectionsKt__MutableCollectionsKt.java
Medium
CVSS:4.3
IP Address disclosure
MASVS: MSTG-CODE-2
CWE-200 Information Exposure
Files:
 net/i2p/crypto/eddsa/EdDSASecurityProvider.java
com/demo/qrcode/Shelly.java
Pygal Germany: 100 United States: 100

Map computed by Pithus.

Domains analysis

Information computed with MobSF.

DE journeyapps.com 13.35.253.28
US github.com 140.82.121.4

URL analysis

Information computed with MobSF.

https://journeyapps.com/
https://github.com/journeyapps/zxing-android-embedded
Defined in Android String Resource
https://journeyapps.com/
https://github.com/journeyapps/zxing-android-embedded
Defined in Android String Resource

Permissions analysis

Information computed with MobSF.

High android.permission.CAMERA take pictures and videos
Allows application to take pictures and videos with the camera. This allows the application to collect images that the camera is seeing at any time.
Low android.permission.INTERNET full Internet access
Allows an application to create network sockets.
Low android.permission.ACCESS_NETWORK_STATE view network status
Allows an application to view the status of all networks.
android.permission.ACCESS_WIFI_STATE Unknown permission
Unknown permission from android reference

Threat analysis

Information computed with Quark-Engine.

Confidence:
100%
Load external class
Confidence:
100%
Find a method from given class name, usually for reflection
Confidence:
100%
Read data and put it into a buffer stream
Confidence:
100%
Connect to a URL and receive input stream from the server
Confidence:
100%
Method reflection
Confidence:
100%
Retrieve data from broadcast
Confidence:
100%
Read sensitive data(SMS, CALLLOG, etc)
Confidence:
100%
Connect to a URL and get the response code
Confidence:
100%
Monitor the broadcast action events (BOOT_COMPLETED)
Confidence:
100%
Get absolute path of the file and store in string
Confidence:
100%
Get last known location of the device
Confidence:
100%
Get calendar information
Confidence:
100%
Get location of the device
Confidence:
100%
Method reflection
Confidence:
100%
Get the time of current location
Confidence:
100%
Initialize class object dynamically
Confidence:
100%
Connect to a URL and set request method
Confidence:
80%
Read file and put it into a stream
Confidence:
80%
Implicit intent(view a web page, make a phone call, etc.) via setData
Confidence:
80%
Get resource file from res/raw directory

Behavior analysis

Information computed with MobSF.

Crypto
       COSE/Recipient.java
okio/HashingSink.java
okio/HashingSource.java
okio/ByteString.java
okio/Buffer.java
COSE/MacCommon.java
COSE/EncryptCommon.java
Get system service
       com/budiyev/android/codescanner/Utils.java
com/journeyapps/barcodescanner/RotationListener.java
com/journeyapps/barcodescanner/CameraPreview.java
Http connection
       com/demo/qrcode/Shelly.java
Inter process communication
       com/journeyapps/barcodescanner/CaptureActivity.java
com/journeyapps/barcodescanner/CaptureManager.java
com/journeyapps/barcodescanner/DecoratedBarcodeView.java
Java reflection
       org/joda/time/DateTimeZone.java
retrofit2/ParameterHandler.java
kotlinx/coroutines/internal/ConcurrentKt.java
kotlin/coroutines/jvm/internal/DebugMetadataKt.java
kotlinx/coroutines/internal/FastServiceLoader.java
kotlin/internal/PlatformImplementationsKt.java
kotlin/coroutines/jvm/internal/ModuleNameRetriever.java
kotlinx/coroutines/internal/FastServiceLoaderKt.java
kotlin/jvm/internal/Intrinsics.java
kotlinx/coroutines/android/AndroidExceptionPreHandler.java
kotlinx/coroutines/internal/ExceptionsConstuctorKt.java
retrofit2/RequestFactory.java
retrofit2/Utils.java
com/upokecenter/cbor/PropertyMap.java
retrofit2/Retrofit.java
kotlin/internal/PlatformImplementations.java
kotlinx/coroutines/debug/internal/DebugProbesImpl.java
org/json/JSONObject.java
retrofit2/Invocation.java
okio/ByteString.java
retrofit2/KotlinExtensions$await$2$2.java
retrofit2/Platform.java
kotlinx/coroutines/internal/StackTraceRecoveryKt.java
retrofit2/HttpServiceMethod.java
retrofit2/ServiceMethod.java
kotlinx/coroutines/CommonPool.java
kotlin/jvm/internal/Reflection.java
kotlin/jvm/internal/ClassReference.java
Local file i/o operations
       com/journeyapps/barcodescanner/CaptureManager.java
Message digest
       okio/HashingSink.java
net/i2p/crypto/eddsa/spec/EdDSAPrivateKeySpec.java
okio/HashingSource.java
okio/ByteString.java
okio/Buffer.java
net/i2p/crypto/eddsa/EdDSAEngine.java
net/i2p/crypto/eddsa/spec/EdDSAParameterSpec.java
Tcp socket
       okio/Okio.java

Control flow graphs analysis

Information computed by Pithus.

The application probably gets the network connections information

The application probably gets network interfaces addresses (IP and/or MAC)

The application probably plays sound

The application probably gets memory and CPU information

The application probably creates an accessibility service

The application probably listens accessibility events