根据《个人信息保护法》、《数据安全法》、《网络安全法》等法律法规和监管部门规章要求,App 开发运营者(以下简称为“开发者”)在提供网络产品服务时应尊重和保护最终用户的个人信息,不得违法违规收集使用个人信息,保证和承诺就个人信息处理行为获得最终用户的授权同意,遵循最小必要原则,且应当采取有效的技术措施和组织措施确保个人信息安全。为帮助开发者在使用威胁感知-Android SDK的过程中更好地落实用户个人信息保护相关要求,避免出现侵害最终用户个人信息权益的情形,特制定本合规使用说明,开发者使用威胁感知-Android SDK时必须在《隐私政策》中告知终端用户SDK使用用途,并且在终端用户未同意《隐私政策》前不得初始化任何SDK。请您务必按照以下步骤做好合规自查,避免被监管部门通报或下架您的应用。
升级最新版SDK
请务必确保您已经将升级到满足监管新规的最新版本。
SDK 扩展业务功能的配置说明
接入说明:爱加密威胁感知-Android SDK包括基本业务功能和扩展业务功能。
基本功能:为开发者提供移动安全监测服务,可监测APP运行状态,及时发现潜在风险,保证APP可以安全运行。
扩展功能:为开发者提供风险应用检测服务,可监测硬件中可能会对安卓APP造成攻击的风险应用。
功能区分 | 业务功能 | 功能介绍 | 相关个人信息及处理目的 | 配置方式 |
---|---|---|---|---|
基本功能 | 应用风险监测 | 对APP的运行状态进行全面实时监测,及时发现并预警潜在风险。 | 应用信息(包括应用版本号、应用运行模式、证书MD5、签名证书)用于定位遭受攻击的应用信息,开发者可根据应用信息,针对问题较多的应用版本对应用进行优化。 硬件信息(包括设备型号、设备厂商、屏幕分辨率、内存使用率、剩余电量、CPU使用率、CPU型号、CPU架构、设备名称、Android ID、指令集1、指令集2、主板信息、ROM构建日期):用于生成脱敏的终端用户设备唯一性标识,以确保能准确定位风险设备。 系统信息(包括系统名称、系统版本)用于定位遭受攻击的系统信息,开发者可根据系统信息,针对问题较多的系统版本对应用进行优化。 网络信息(包括网络代码、联网方式、WIFI信号强度)用于定位风险设备的网络信息,应对团伙攻击场景,及时发现团伙内的其它风险设备。 | 基本业务,必要个人信息 |
扩展功能 | 高频更换地域、位置欺诈监测 | 用于识别风险设备是否有地理位置伪造行为 | 粗略位置信息(经度、维度) |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"longitude", true,
"latitude", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"longitude", false,
"latitude", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
|
精确地理位置 |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"longitude", true,
"latitude", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"longitude", false,
"latitude", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
|||
基站编号 |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"baseStationCode", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"baseStationCode", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
|
|||
位置区域码 |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"areaCode", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"areaCode", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
|||
风险设备监测 | 用于定位风险设备的网络信息,应对团伙攻击场景,及时发现团伙内的其它风险设备 | 网络信息(外网IP、局域网IP) |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"ip", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"ip", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
|
|
用于识别异常风险设备 | IMEI |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"imei", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"imei", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
||
IMSI |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"imsi", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"imsi", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
|||
分辨率 |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"deviceScreenStr", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"deviceScreenStr", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
|||
陀螺仪信息、温度传感器、光传感器、加速度传感器 |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"angularVelocityData", true,
"behave", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"angularVelocityData", false,
"behave", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
|
|||
BSSID |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"wifiBssid", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"wifiBssid", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
|
|||
蓝牙MAC |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"bluetoothMac", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"bluetoothMac", false);
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
|||
蓝牙名称 |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"deviceName", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"deviceName", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
|||
WiFi MAC |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"wifiMac", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"wifiMac", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
|||
WiFi名称(SSID) |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"wifiSsid", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig);
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"wifiSsid", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
|||
设备序列号 |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"serialNumber", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"serialNumber", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
|||
风险应用监测 | 对设备里是否安装了风险应用进行监测,保证APP的运行环境安全。 | 应用安装列表 |
开启:
WxgzSdk.setEnableCollect
AppInfo(context, true);
关闭:
WxgzSdk.setEnableCollect
AppInfo(context, false);
|
|
用于判断宿主 APP 信息,识别异常软件 | 应用名称 |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"triggerEventApp", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"triggerEventApp", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
||
应用包名 |
开启:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"triggerEventAppPkg", true));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
关闭:
DataCollectConfig dataCollectConfig = new DataCollectConfig();
dataCollectConfig.updateConfig(Map.of(
"triggerEventAppPkg", false));
WxgzSdk.setDataCollectConfig(dataCollectConfig)
|
个人信息收集频次、精度说明
接入说明:我们将根据业务功能实现之最小必要进行用户个人信息的收集。收集频次方面,爱加密威胁感知-Android SDK 的数据采集仅在 APP 调用相关功能时触发,关于频次 APP 开发者不可自行配置,故我们对频次不对外提供可选择的配置方式、示例;收集精度方面,主要涉及定位相关功能,主要通过权限进行控制,爱加密威胁感知-Android SDK 通过可选权限让 APP 可以控制是否申请精确地理位置权限或粗略地理位置权限。如果您需要对定位权限进行配置,可参考以下 “SDK 申请系统权限的说明” 进行配置。
SDK申请系统权限的说明
接入说明:对于爱加密威胁感知-Android SDK可选申请的系统权限,您可以参考相关如下表格的内容,详细了解相关权限与各业务功能的关系及其申请时机,因相关权限的不申请将会对其对应的功能造成影响,您可以结合业务实际需要进行合理配置。
Android 操作系统应用权限列表 | |||
---|---|---|---|
权限 | 是否可选 | 用途 | 申请时机 |
INTERNET | 必选 | 网络权限。用于实现和服务器通信,以便提供态势感知服务 | 启用业务功能读取 |
ACCESS_NETWORK_STATE | 必选 | 查看网络状态的权限。用于实现网络断开后sdk重新连接 | 启用业务功能读取 |
READ PHONE STATE | 可选 | 获取手机状态参数,包括Android ID、IMEI、IMSI、设备序列号,辅助生成态势感知唯一设备标识符 | 启用业务功能读取 |
ACCESS_COARSE_LOCATION | 可选 | 获取粗略位置,包括经度、维度,用于识别安全风险,位置欺诈、高频更换地域、应用多开、云手机环境、模拟器环境、域名欺诈,持续检测地理位置变化 | 启用业务功能读取 |
ACCESS_FINE_LOCATION | 可选 | 获取精确位置,包括经度、维度,用于识别安全风险,位置欺诈、高频更换地域、云手机环境、模拟器环境、域名欺诈,持续检测地理位置变化 | 启用业务功能读取 |
ACCESS_WIFI_STATE | 可选 | 获取WiFi状态,包括WiFi名称、WiFi BSSID、WiFi 信号强度、WiFi MAC,用于识别WiFi风险事件 | 启用业务功能读取 |
QUERY_ALL_PACKAGES | 可选 | 获取应用安装列表,用于识别风险应用、群控攻击、病毒木马、框架环境给APP带来业务风险的安全事件 | 启用业务功能读取 |
GET_TASKS | 可选 | 获取任务栈,用于低版本系统检测界面劫持风险 | 启用业务功能读取 |
PACKAGE_USAGE_STATS | 可选 | 获取近期使用的app,用于语音诱骗风险检测 | 启用业务功能读取 |
READ_CALL_LOG | 可选 | 监听当前电话通话状态,用于语音诱骗检测 | 启用业务功能读取 |
RECORD_AUDIO | 可选 | 监听当前电话通话状态,用于语音诱骗检测 | 启用业务功能读取 |
FOREGROUND_SERVICE | 可选 | 开启前台服务捕获应用崩溃信息,用于监听应用崩溃 | 启用业务功能读取 |
READ_EXTERNAL_STORAGE | 可选 | 访问外部存储目录,查找特征,用于hook检测和模拟器检测 | 启用业务功能读取 |
WRITE_EXTERNAL_STORAGE | 可选 | 在外部存储目录下生成缓存文件,用于高频更换IP检测 | 启用业务功能读取 |
SDK 可选权限
以下为可选权限, 如您需要检测设备WIFI风险,建议集成以下权限(可选)
如您需要检测设备WIFI风险,建议集成以下权限(可选)
如您需要获取手机状态参数,并且更精准的识别风险,包括屏幕操控风险检测,语音诱骗检测和模拟器检测,建议集成以下权限(可选)
如您需要捕获应用崩溃信息,辅助排查错误,建议集成以下权限(可选)
如您需要更精准的检测界面劫持风险,建议集成以下权限(可选)
如您需要更精准的检测hook攻击风险、模拟器环境风险和高频更换IP,建议集成以下权限(可选)
如您需要更精准的检测语音诱骗攻击,建议集成以下权限(可选)
如您需要更精准的检测位置模拟风险和病毒应用风险,建议集成以下权限(可选)
SDK隐私政策披露要求与示例
披露示例:
SDK名称:爱加密威胁感知-Android SDK
第三方主体:北京智游网安科技有限公司
SDK 用途:保障APP运行安全和业务安全,避免用户受到黑灰产攻击
处理个人信息类型:应用信息(应用名称、应用版本号、包名、应用运行模式、证书MD5、签名证书),硬件信息(设备型号、设备厂商、IMEI、IMSI、屏幕分辨率、内存使用率、剩余电量、CPU使用率、CPU型号、CPU架构、设备名称、设备序列号、Android ID、指令集1、指令集2、主板信息、ROM构建日期),系统信息(系统名称、系统版本),位置信息(经度、维度),网络信息(网络代码、基站编号、位置区域码、联网方式、外网IP、BSSID、蓝牙MAC、WiFi_MAC、WiFi名称、局域网IP)
数据处理方式:去标识化、数据加密
隐私权政策链接:https://www.ijiami.cn/privacypolicy/infoBeat-apk-privacy.html
最终用户同意方式的说明及示例
隐私政策授权弹窗示例:
应用安装列表授权弹窗示例:
最终用户行使权利说明
接入说明:开发者在其 APP 中集成威胁感知SDK后, 威胁感知SDK的正常运行会收集必要的设备信息用于监测APP运行安全和业务安全的目的。开发者应根据相关法律法规为最终用户提供行使个人信息主体权利的路径或功能,需威胁感知SDK配合的,请与爱加密公司及时进行联系,我们将与开发者协同妥善解决最终用户的诉求。
SDK 业务功能调用时机
SDK安全监测功能启用
威胁感知调用:确保 APP 首次启动时,在用户阅读您的《隐私政策》并取得用户授权,才调用威胁感知功能接口,此时SDK会进行注册,并生成威胁感知唯一标识(deviceId)和采集业务功能所必要的个⼈信息(设备信息、网络信息及位置信息)并上报。
若用户未授权或未同意您的《隐私政策》,则不能调用威胁感知。
隐私保护机制
如果您对威胁感知SDK权限有任何疑问、意见和建议,可通过以下联系方式与我们联系:
以下合规文件供开发者参考: