安全分析报告: Dictionary v6.2.0

安全分数


安全分数 51/100

风险评级


等级

  1. A
  2. B
  3. C
  4. F

严重性分布 (%)


隐私风险

5

用户/设备跟踪器


调研结果

高危 1
中危 9
信息 4
安全 1
关注 1

高危 应用程序包含隐私跟踪程序

此应用程序有多个5隐私跟踪程序。跟踪器可以跟踪设备或用户,是终端用户的隐私问题。

中危 Activity (eplusmoment.ds.efd.Search) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Service (androidx.work.impl.background.systemjob.SystemJobService) 受权限保护, 但是应该检查权限的保护级别。

Permission: android.permission.BIND_JOB_SERVICE [android:exported=true]
发现一个 Service被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 Broadcast Receiver (androidx.work.impl.diagnostics.DiagnosticsReceiver) 受权限保护, 但是应该检查权限的保护级别。

Permission: android.permission.DUMP [android:exported=true]
发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 Broadcast Receiver (androidx.profileinstaller.ProfileInstallReceiver) 受权限保护, 但是应该检查权限的保护级别。

Permission: android.permission.DUMP [android:exported=true]
发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 应用程序创建临时文件。敏感信息永远不应该被写进临时文件

应用程序创建临时文件。敏感信息永远不应该被写进临时文件


Files:
lombok/installer/OsUtils.java, line(s) 23
lombok/javac/apt/Processor.java, line(s) 57

中危 应用程序使用不安全的随机数生成器

应用程序使用不安全的随机数生成器
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#weak-random-number-generators

Files:
lombok/core/debug/AssertionLogger.java, line(s) 8

中危 SHA-1是已知存在哈希冲突的弱哈希

SHA-1是已知存在哈希冲突的弱哈希
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#identifying-insecure-andor-deprecated-cryptographic-algorithms-mstg-crypto-4

Files:
com/nuance/nmsp/client/sdk/oem/g.java, line(s) 18

中危 应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库

应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04h-Testing-Code-Quality.md#injection-flaws-mstg-arch-2-and-mstg-platform-2

Files:
net/sqlcipher/database/SQLiteDatabase.java, line(s) 1613,1633,917,924,931,946,1003,1413,1575,1580,1764,1773

中危 此应用可能包含硬编码机密信息

从应用程序中识别出以下机密确保这些不是机密或私人信息
AdMob广告平台的=> "com.google.android.gms.ads.APPLICATION_ID" : "ca-app-pub-7842774101690929~5294789493"
"com.google.firebase.crashlytics.mapping_file_id" : "00000000000000000000000000000000"
"firebase_database_url" : "https://dict-2b79b.firebaseio.com"
"google_api_key" : "AIzaSyDAdUABbgQd9TqVGj0RrILypzSoNQ7ZSmo"
"google_app_id" : "1:861213595156:android:bc0e7c8c09ec7988a63901"
"google_crash_reporting_api_key" : "AIzaSyDAdUABbgQd9TqVGj0RrILypzSoNQ7ZSmo"
"library_android_database_sqlcipher_authorWebsite" : "https://www.zetetic.net/sqlcipher/"
BBCD3226BBD92D4C90E7690BBBC04369
123450781234aa7812345
C95A010E0A27A283CC9F3F82C70A2D37

信息 应用程序记录日志信息,不得记录敏感信息

应用程序记录日志信息,不得记录敏感信息
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#logs

Files:
com/nuance/nmdp/speechkit/recognitionresult/b.java, line(s) 147,155,143,151
com/nuance/nmsp/client/sdk/oem/e.java, line(s) 26,18,50,22,30,34,38,46,54,13,42
eplusmoment/ds/data/ContactUtils.java, line(s) 17
eplusmoment/ds/data/ListDataUtils.java, line(s) 53
eplusmoment/ds/data/LogUtils.java, line(s) 9
eplusmoment/ds/data/MyDatabaseManager.java, line(s) 195,199
eplusmoment/ds/data/SettingManager.java, line(s) 49,51,59,67,69,77
eplusmoment/ds/data/TranslateManager.java, line(s) 97,110
eplusmoment/ds/data/TtsManager.java, line(s) 89
eplusmoment/ds/efd/Search.java, line(s) 453
lombok/bytecode/PoolConstantsApp.java, line(s) 70,71,53,57,59,63,67
lombok/bytecode/PostCompilerApp.java, line(s) 89,90,59,66,70,78,85
lombok/core/DiagnosticsReceiver.java, line(s) 7,12
lombok/core/Main.java, line(s) 87,44,77
lombok/core/PublicApiCreatorApp.java, line(s) 40,48,61,124,88,113
lombok/core/Version.java, line(s) 14,16
lombok/core/configuration/ConfigurationProblemReporter.java, line(s) 13
lombok/core/debug/FileLog.java, line(s) 24
lombok/core/debug/ProblemReporter.java, line(s) 72,80,88
lombok/core/runtimeDependencies/CreateLombokRuntimeApp.java, line(s) 93,171,111,114,116,133,160
lombok/delombok/Delombok.java, line(s) 243,245,276,319,322,332,342,343,235,258,260,261,262,263,265,266,338
lombok/delombok/DelombokApp.java, line(s) 65
lombok/eclipse/TransformEclipseAST.java, line(s) 69
lombok/eclipse/agent/MavenEcjBootstrapApp.java, line(s) 89,100,111,120,151,108,133
lombok/eclipse/handlers/EclipseSingularsRecipes.java, line(s) 69,81
lombok/installer/Installer.java, line(s) 210,211,212,241,243,246,249,251,254,267,270,275,276,277,206,287
lombok/javac/CompilerMessageSuppressor.java, line(s) 93
lombok/javac/HandlerLibrary.java, line(s) 128
lombok/javac/JavacAST.java, line(s) 152
lombok/javac/JavacResolution.java, line(s) 220
lombok/javac/JavacTreeMaker.java, line(s) 419,476
lombok/javac/handlers/HandleBuilder.java, line(s) 484
lombok/javac/handlers/HandleVal.java, line(s) 101,112
lombok/javac/handlers/JavacSingularsRecipes.java, line(s) 47,59
lombok/patcher/ClassRootFinder.java, line(s) 81
lombok/patcher/ScriptManager.java, line(s) 140,154
lombok/patcher/Version.java, line(s) 10
lombok/patcher/scripts/SetSymbolDuringMethodCallScript.java, line(s) 121
lombok/permit/Permit.java, line(s) 150,153,289,291
net/sqlcipher/AbstractCursor.java, line(s) 237
net/sqlcipher/BulkCursorToCursorAdaptor.java, line(s) 49,97,138,164,175,185,203,108,119,223
net/sqlcipher/DatabaseUtils.java, line(s) 57,68,583,651
net/sqlcipher/DefaultDatabaseErrorHandler.java, line(s) 12,14,18,28,32
net/sqlcipher/database/SQLiteCompiledSql.java, line(s) 46,64,71,82
net/sqlcipher/database/SQLiteContentHelper.java, line(s) 25
net/sqlcipher/database/SQLiteDatabase.java, line(s) 364,958,966,986,997
net/sqlcipher/database/SQLiteDebug.java, line(s) 8,9,10,11,12,13
net/sqlcipher/database/SQLiteOpenHelper.java, line(s) 168,189
net/sqlcipher/database/SQLiteProgram.java, line(s) 67,73
net/sqlcipher/database/SQLiteQuery.java, line(s) 42
net/sqlcipher/database/SQLiteQueryBuilder.java, line(s) 134,133
net/sqlcipher/database/SqliteWrapper.java, line(s) 34,44,54,64,74

信息 此应用程序使用SQL Cipher。SQLCipher为sqlite数据库文件提供256位AES加密

此应用程序使用SQL Cipher。SQLCipher为sqlite数据库文件提供256位AES加密


Files:
eplusmoment/ds/data/MarkingsManager.java, line(s) 14,6,7
eplusmoment/ds/data/MyDatabaseManager.java, line(s) 97,101,114,233,248,18,19,20
net/sqlcipher/database/SupportHelper.java, line(s) 12,1

信息 此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它

此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04b-Mobile-App-Security-Testing.md#clipboard

Files:
eplusmoment/ds/efd/ResultPage.java, line(s) 7,122

信息 应用与Firebase数据库通信

该应用与位于 https://dict-2b79b.firebaseio.com 的 Firebase 数据库进行通信

安全 Firebase远程配置已禁用

Firebase远程配置URL ( https://firebaseremoteconfig.googleapis.com/v1/projects/861213595156/namespaces/firebase:fetch?key=AIzaSyDAdUABbgQd9TqVGj0RrILypzSoNQ7ZSmo ) 已禁用。响应内容如下所示:

{
    "state": "NO_TEMPLATE"
}

关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (itunes.apple.com) 通信。

{'ip': '94.130.77.194', 'country_short': 'CN', 'country_long': '中国', 'region': '江苏', 'city': '扬州', 'latitude': '32.397221', 'longitude': '119.435600'}

安全评分: ( Dictionary 6.2.0)